Instruções de linguagem C_branch e loop (3)


Prefácio

:C语言:结构化的程序设计语言 顺序结构、选择结构、循环结构:


提示:以下是本篇文章正文内容,下面案例可供参考

1. Adivinhe o jogo dos números

1.1. O computador gera aleatoriamente um número (1~100);

1.2. Adivinhe o número:

a> Se você adivinhou, será lembrado de que adivinhou e poderá continuar adivinhando.
b> Se a estimativa for muito pequena, lembre-me de adivinhar. Se a estimativa for muito pequena, continue adivinhando.
c>Adivinhei certo, parabéns, adivinhei certo, o jogo acabou

1.3. Se não ficar satisfeito depois de jogar, você pode continuar jogando sem sair do programa.

Como gerar números aleatórios --- rand O arquivo de cabeçalho incluído pela função rand é

1.4.A conexão entre rand e srand

  • Chame srand antes de usar rand
  • Você só precisa ligar para srand uma vez. Não defina srand toda vez que gerar números aleatórios.
  • Rand serve para gerar números aleatórios e srand serve para definir o ponto de partida da geração de números aleatórios antes de gerar números aleatórios.

5. Adivinhe o código-fonte do jogo numérico

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

void menu()
{
    
    
    // 菜单
    printf("*********************************\n");
    printf("********1. play  0. exit*********\n");
    printf("*********************************\n");

}

void game()
{
    
    
    RAND_MAX;
    // 1.生成随机数
    //rand 函数 可以生成随机数
    int ret = rand()%100+1;  //随机数范围是 0 ~ 32767 
    // rand()%100  得到的余数只可能是小于100 ---  0~99
    //rand()%100+1 随机数范围是 1~100
    //printf("%d\n", ret);
    
    // 2.猜数字
    int guess = 0;
    while (1)
    {
    
    
        printf("请猜数字:>");
        scanf("%d", &guess);
        if (guess > ret)
        {
    
    
            printf("猜大了\n");
        }
        else if (guess < ret)
        {
    
    
            printf("猜小了\n");
        }
        else
        {
    
    
            printf("恭喜!猜对了\n");
            break;
        }
    }
}

int main()
{
    
    
    int input = 0;
    srand((unsigned int)time(NULL)); //要给srand 传递一个变化的值,计算机上的时间是时刻发生变化的
    //time 函数可以返回一个时间戳

    do
    {
    
    
        menu();
        
        printf("请选择:>");
        scanf_s("%d", &input); // 1  0 
        switch (input)
        {
    
    
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误\n");
            break;
        }
        
    } while (input);

    //打印菜单
    //1.玩游戏
    //0.退出游戏
    return 0;
}


2. vá para a declaração

  • A linguagem C fornece instruções goto que podem ser abusadas à vontade
  • Teoricamente, a instrução goto não é necessária. Na prática, o código pode ser facilmente escrito sem a instrução goto.
  • No entanto,a declaração gotoainda é útil em algumas situações.O uso mais comum é terminar o processamento do programa em algumas estruturas profundamente aninhadas.

2.1. Por exemplo: saltar de duas ou mais camadas de loops ao mesmo tempo.

No caso de loops multiníveis, o uso de break não atingirá o objetivo, podendo apenas sair do loop mais interno para o loop de nível anterior.

2.2. A instrução goto não pode abranger funções.

3. Procedimento de desligamento

3.1. Inicie o programa e desligue o computador em 1 minuto.

3.2. Se você digitar Eu sou um porco, o desligamento será cancelado.

3.3 Arquivo de cabeçalho strcmp de tamanho de comparação de string <string.h>


  • Como escrever goto


4. Exemplos – Impressão de números primos e anos bissextos

4.1.char é um tipo de caractere

A essência de um caractere é o valor do código ASCII do caractere. O valor do código ASCII é um número inteiro, portanto, os tipos de caracteres podem ser divididos em famílias inteiras durante a classificação.

4.2. Variáveis ​​de ponteiro são usadas para armazenar endereços

Tamanho do endereço 32 bits / 64 bti
tamanho variável 32 bits - 4 bytes / 64 bits - 8 bytes

4.3.Pontos de conhecimento da instrução Switch

A cláusula padrão na instrução switch pode ser colocada em qualquer lugar (√)
A expressão após o caso na instrução switch só pode ser uma expressão constante inteira (√)
A cláusula case na instrução switch deve preceder a cláusula padrão (×)
switch Case expressões em declarações não requerem ordem

4.4. Troca de duas variáveis ​​inteiras

4.5. Imprimir números primos – uso de contagem++ – função sqrt

4.6. Imprimir ano bissexto

  • Regras de julgamento:
    1. É divisível por quatro e não divisível por cem.
    2. Se for divisível por quatrocentos, é um ano bissexto.

Acho que você gosta

Origin blog.csdn.net/Ghr_C99/article/details/132603715
Recomendado
Clasificación