在随机生成的函数前面加个srand(time(0))。
十载的河源网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整河源建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“河源网站设计”,“河源网站推广”以来,每个客户项目都认真落实执行。
void f(int*a,int n)
{int k;
srand(time(0));
for(k=0;kn;k++)
{a[k]=rand()%11;
printf("%d",a[k]);}
printf("\n");
}
当然在引用头文件列表中也要加上#include time.h
在进入循环前添加一句srand(time(NULL)); ,作用用当前时间给随机数种子赋值,报关证每次运行是赋值的种子不同
注意要包含time.h和stdlib.h头文件
怎么改ls的大哥们都说了:就是把scand放到for循环上面,只调用一次就可以了。
至于为什么放在for循环里会产生相同的随机数,我来给你说下吧:
srand()函数是初始化随机数产生器,它产生随机数种子,说白了就是初始化随机数。
srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。
而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。
那么,相同的随机数种子所产生的随机数肯定是一样的了。
您明白了吧?
#include stdio.h
#include stdlib.h
#include time.h
//#include crtdefs.h
int main(){
int i;
int num;
srand((unsigned int)time(NULL));//改成这样就好了:先用时间初始化随机种子
for(i=0;i10;i++){
//time_t t;
num=rand()%100; //生成随机数
printf("%d\n",num);
num50?printf("你赢了\n"):printf("你输了\n"); //0为假,非0为真
}
getchar();
}