第10.2.2 小节代码 猜数
//This is a comment
//Author:King
//Time:2020/12/6
//Reference:C Programming:A Modern Approach,Second Edition
/***************************************************************
10.2.2 小节代码 猜数
****************************************************************/
#include <stdio.h>
//#include <stdbool.h> // C99 only
#include <time.h>
#include <stdlib.h>
#define MAX_NUMBER 100
int secret_number; //定义全局变量
void initialize_number_generator(void);
void choose_new_secret_number(void);
void read_guesses(void);
int main(void)
{
char command;
printf("Guess the secret number between 1 and %d\n",MAX_NUMBER);
initialize_number_generator();
do
{ choose_new_secret_number();
printf("A new number has been choosen.\n");
read_guesses();
printf("Play again? (Y/N) ");
scanf(" %c",&command); //此处%c前面必须加空格,加入空格后自动跳过空格录入空格后的第一个字符 ,参考本书P98页说明
printf("\n");
}
while(command == 'Y' || command == 'y');
system("pause"); //加入该函数后可以使得产生的exe单独运行,不会发生闪退。也可以加入其它函数使得main函数无法返回即可。如while(1)、getchar() 等
return 0;
}
void initialize_number_generator(void)
{
srand((unsigned) time(NULL)); //初始化srand函数
}
void choose_new_secret_number(void)
{
secret_number = rand() % MAX_NUMBER + 1; //产生1~100之间的随机数
}
void read_guesses(void)
{
int guess, num_guesses = 0;
for(;;)
{
num_guesses++;
printf("Enter guess:");
scanf("%d",&guess);
if(guess == secret_number)
{
printf("You won in %d guesses.\n",num_guesses);
return;
}
else if(guess < secret_number)
printf("Too low; try again.\n");
else
printf("Too high; try again.\n");
}
}