C语言小游戏——猜数——我已经想好了一个1~100之间的数,你要几次才能猜中它?
源代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int number=rand()%100+1;
int count = 0;
int a = 0;
printf("我已经想好了一个1到100之间的数。");
do {
printf("请猜这个1到100之间数:");
scanf("%d", &a);
if ( a > number ) {
printf("你猜的数大了。");
} else if ( a < number ) {
printf("你猜的数小了。");
}
count ++;
} while (a != number);
printf("太好了,你用了%d次就猜到了答案。\n", count);
return 0;
}
运行结果图:
附言:
如果没有第一句srand(time(0));则产生的会是伪随机数,你可以把它去掉试试。
下面科普一下srand(),rand()的运作机制:
srand((unsigned int)(time(NULL))根据每一次运行程序的时间是不同的来设置rand()产生随机数时的随机数种子。在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1。
所以如果去掉srand()语句,相当于没有设置随机数种子,每次随机数种子都自动设成相同值1 ,导致每次rand()所产生的随机数值一样。
今天的分享就到这儿啦,感谢阅读,你也可以试试这个小游戏啊!
评论