注册 登录
编程论坛 C++教室

为什么不能产生随机数的?

qq1650722813 发布于 2013-12-03 20:03, 315 次点击
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    int a,b,c,f,h,num,i,j;
    int n=0;
    for(i=0;i<10;i++)
    {a=rand()%10+1;
    b=rand()%10+1;}
    f=rand()%2;
    if(f==0)
    printf("%d+%d=",a,b);
    scanf("%d",&c);
    h=a+b;
    if(f==1)
    {printf("%d-%d=",a,b);
    scanf("%d",&c);
    h=a-b;}
    if(c==h)
    printf("正确!");
    n++;
    if(c!=h)
        printf("错误!");
         num=10-n;
        j=10*n;
printf("总分为:\n");
printf("错误题总数:\n");
}
3 回复
#2
左手拉一只猫2013-12-03 22:10
随机数编译器里面的随机数产生器函数rand()产生的,如果你每次不用srand()对其进行设置,那么每次产生的序列都是同一个序列,也就不是随机序列了。
在每次用之前用当前时间对其初始状态进行设置:
srand((unsigned)time(NULL));
//在上面还要用上#include<time>,这样就可以产生随机数了。具体你去查相应软件的help里面的函数说明吧,那个比我讲的详细!
#3
韶志2013-12-03 23:51
真奇怪   你都加了 time 头文件了
 为什么没有写   srand 函数...    看看课本吧
#4
tianxin_fox2013-12-07 21:51
srand(time(0));这句可以根据系统时间的改变产生随机数
1