c语言产生随机数的问题:猜数游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main (void)
{
    int a,b;
    srand((unsigned int)time(0));
    a=(rand()%100+1);//从1到100的随机数,如果不加1就是从0开始到99.
    //对一个数求余,得到的数就是从0到这个数。
    while(1)
    {
       printf("输入一个整数:\n");
       scanf("%d",&b);
   // printf("输入的整数是:%d\n",b);
    //printf("输入的随机数是:%d",a);
       if(b>a)
          printf("这个数偏大了\n");
       else if(b<a)
          printf("这个数偏小了\n");
       else
       {
          printf("你答对了\n");
          break;
       }
     }
     return 0;
}

知识点1:

rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL))。此函数,在每次开始游戏后调用一次即可。只需要调用一次即可,有第一个的种子就可以了。而没调用一次rand()函数,就会产生一个随机数。

知识点2:

a=(rand()%100+1);//从1到100的随机数,如果不加1就是从0开始到99.
对一个数求余,得到的数就是从0到(这个数-1)。

知识点3

break函数可以在循环或者是在条件语句中都可以用,直接跳出循环,或者条件语句。

猜你喜欢

转载自blog.csdn.net/sun_fengjiao/article/details/86492111