Diretório de artigos
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 é![](https://img-blog.csdnimg.cn/51e5af2e562b4ab292f4b202ba1798d9.png)
![](https://img-blog.csdnimg.cn/08aca774da8043c2904b9e7672fc7222.png)
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.
![](https://img-blog.csdnimg.cn/46a4635ce8654a9c8127a50078bf274d.png)
2.2. A instrução goto não pode abranger funções.
![](https://img-blog.csdnimg.cn/1041cef960ac4b0e97aef484c7b5f270.png)
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.
![](https://img-blog.csdnimg.cn/f4858dfbf9924f1a81bbbc31004890d6.png)
3.3 Arquivo de cabeçalho strcmp de tamanho de comparação de string <string.h>
![](https://img-blog.csdnimg.cn/0d5d50ab04a34523b1cd361bca1f93eb.png)
- Como escrever goto
![](https://img-blog.csdnimg.cn/efa6630405f64aac845e1843e41f1cbe.png)
![](https://img-blog.csdnimg.cn/9a50b7c25be04ec5a6ba5887d7c0f5a9.png)
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
![](https://img-blog.csdnimg.cn/9a195fc284de4ef2965bc28635e6abe0.png)
![](https://img-blog.csdnimg.cn/501d15830c724256a67b2f1de3500a6b.png)
4.5. Imprimir números primos – uso de contagem++ – função sqrt
![](https://img-blog.csdnimg.cn/e95ec024da4349099231f1736b8e7315.png)
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.
![](https://img-blog.csdnimg.cn/07d3d965627b45e9a3b68c815504a1fe.png)