#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int a,b,sum = 6; system("color f5"); srand((unsigned)time(NULL)); a = rand()%100; printf("请输出0~99之间的数\n"); while(1) { sum--; scanf("%d",&b); if(b > a){ printf("大了,还剩下%d次机会,请继续\n",sum); } if(b < a){ printf("小了,还剩下%d次机会,请继续\n",sum); } if(b == a){ printf("恭喜你答对了!\n"); break; } if(sum == 0){ printf("已经没有机会了,请重新开始吧!\n"); break; } } return 0; }
函数rand()是真正的随机数生成器,而srand()会设置供rand() 使用的随机数种子。函数rand()会返回一个处于0和你所指定的数值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用 srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用srand()会导致相同的随机数序列被生成。 srand((unsigned)time(NULL))则使用系统定时/计数器的值做为随机种子,所以,在相同的平台环境下,显示的随机数会是伪随机数,即每次运行显示的结果会有不同。