如何产生随机数
#include<stdio.h> //根据输入的种子产生1到10的随机10位数组
#include<stdlib.h> //调用了srand()函数以及rand()函数
int main()
{
int a[9];
int i;
unsigned int seed; //srand(unsigned int seed)
printf("input seed:\n");
scanf("%d",&seed);
printf("the array:\n");
srand(seed);
for(i=0;i<9;i++)
{
a[i]=rand()%10+1; //输出1到10以的数
printf("%d\n",a[i]);
}
return 0;
}
time()函数,获取时间戳,即格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,在C语言中可以通过time()函数获取到当前的秒数,参数为0则函数返回值即为结果,若参数不为0则结果保存在参数中
修改如下:
#include<stdio.h>
#include<time.h> //调用time()做随机数种子
#include<stdlib.h>
int main()
{
int a[10],i;
srand(time(0));
printf("the array:\n");
for(i=0;i<10;i++)
{
a[i]=rand()%10+1;
printf("%d\n",a[i]);
}
return 0;
}
practice 4:
简单的猜数游戏。输入你所猜的整数(假定1~100内),与计算机产生的被猜数比较。若相等;显示猜中,显示与被猜数的大小关系。
#include<time.h>
#include<stdlib.h>
int main()
{
int a[10],i=1,number;
srand(time(0));
int flag=rand()%100+1;
printf("please input your number:\n");
scanf("%d",&number);
while(flag!=number)
{
if(number>flag)
printf("your number is too big\n");
else
printf("your number is too small\n");
i++;
printf("please input your number:\n");
scanf("%d",&number);
}
printf("good,the number is %d,you fall %d times",flag,i-1);
}
此程序有一个问题,当输入为9位数字的时候,显示为small,原因不明。