猜数程序实现 需要实现的功能 初始化随机数生成器 选择一个随机数 ·与用户交互直至用户猜对了数值 ■每个功能都可以通过函数来实现 26
猜数程序实现 需要实现的功能 初始化随机数生成器 选择一个随机数 与用户交互直至用户猜对了数值 每个功能都可以通过函数来实现 26
猜数程序源码 /Asks user to guess a hidden number #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX NUMBER 100 /external variable * int secret_number; /prototypes * void initialize_number_generator(void); void choose_new_secret_number(void); void read_guesses(void); 27
27 猜数程序源码 /* Asks user to guess a hidden number */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_NUMBER 100 /* external variable */ int secret_number; /* prototypes */ 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\n", MAX NUMBER); initialize_number_generator(); do E choose_new_secret_number(); printf("A new number has been chosen.\n"); read_guesses(); printf("Play again?(Y/N)"); scanf("%c",&command); printf("\n"); while (command =='y'command =='Y'); return 0; 28
28 猜数程序源码(续) int main(void){ char command; printf("Guess the secret number between 1 and %d.\n\n" , MAX_NUMBER); initialize_number_generator(); do { choose_new_secret_number(); printf("A new number has been chosen.\n"); read_guesses(); printf("Play again? (Y/N) "); scanf(" %c", &command); printf("\n"); } while (command == 'y' || command == 'Y'); return 0; }
猜数程序源码(续2) /米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米 initialize number_generator:Initializes the random 米 number generator using 米 米 the time of day. 米 米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米 void initialize_number_generator(void) { srand((unsigned)time(NULL)); /**米米米*米***米********************米*******米******米米米米米米米米米米米米 choose_new_secret_number:Randomly selects a number 米 between 1 and MAX NUMBER and 米 stores it in secret number. 米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米 void choose_new_secret_number(void) secret number rand()%MAX NUMBER 1; 29
29 猜数程序源码(续2) /********************************************************** * initialize_number_generator: Initializes the random * * number generator using * * the time of day. * **********************************************************/ void initialize_number_generator(void) { srand((unsigned) time(NULL)); } /********************************************************** * choose_new_secret_number: Randomly selects a number * * between 1 and MAX_NUMBER and * * stores it in secret_number. * **********************************************************/ void choose_new_secret_number(void) { secret_number = rand() % MAX_NUMBER + 1; }
猜数程序源码(续3) /**read_guesses:Repeatedly reads user guesses and tells the user whether each guess is too low,too high, 米 or correct.When the guess is correct,prints the 米 米 total number of guesses and returns. */ 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\n",num_guesses); return; } else if (guess secret_number) printf("Too low;try again.\n"); else printf("Too high;try again.\n"); 30
30 /**read_guesses: Repeatedly reads user guesses and tells * * the user whether each guess is too low, too high, * * or correct. When the guess is correct, prints the * * total number of guesses and returns. */ 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\n", num_guesses); return; } else if (guess < secret_number) printf("Too low; try again.\n"); else printf("Too high; try again.\n"); } } 猜数程序源码(续3)