C语言猜数字游戏

问题:

  编写一个猜数字的游程序,任意给一个1—100之间的整数,程序应能迅速的猜出此数是多少,每猜完一次数之后询问是否继续,若回答是则继续做猜数游戏,若回答否,则结束程序运行。

分析:

  rand()是“伪随机数”产生函数,注意,是“伪随机数”,而不是随机数,如果每次srand()给的参数值都相同,那么rand()产生的序列就是相同的,time(NULL)返回的是从某年的1月1日0时0分0秒到系统当前时间所经过的秒数,所以如果不是同一秒钟以内多次运行程序的话,time(NULL)的返回值一定是不同的,用这样的方式来产生相对比较随机的序列。在C语言头文件<stdlib.h>中包含标准库函数srand(),设置产生随机数的种子。程序员可以在程序开始时自行设置种子的数值。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 main()
 5 {
 6     int a,b;
 7     char c;
 8     srand(time(NULL));
 9     a=1+(rand()%100);
10     printf("I have a number between 1 and 100.
Can you guess my number?
Please type your first guess.
");
11     scanf("%d",&b);
12     while(b)
13     {
14     if(b==a)
15     {
16         printf("Excellent! You guessed the number!
Would you like to play again(y or n)?");
17         scanf(" %c",&c);     //%c前面的空格不能少!用以隔离以前输入的回车符 
18         switch(c){
19         case 'y':
20             printf("I have a number between 1 and 100.
Can you guess my number?
Please type your first guess.
");
21             scanf("%d",&b);
22             break;
23         case 'n':
24             break;
25         }
26     }
27 
28     while(b<a)
29     {
30         printf("Too low.Try again.");
31         scanf("%d",&b);
32     }
33 
34     while(b>a)
35     {
36         printf("Too high.Try again.");
37         scanf("%d",&b);
38     }
39     }
40 }
原文地址:https://www.cnblogs.com/geziyu/p/8734659.html