C++中rand用错了吗?

来源:百度知道 编辑:UC知道 时间:2024/06/07 11:58:55
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
void main(){
int a,b;
a=20;
b=rand()%a;
printf("%d\n",b);
}

为什么结果都是1?

这是伪随机数的原因

#include <time.h>
void main(){
int a,b;
a=20;
srand((unsigned)time(NULL));

b=rand()%a;
printf("%d\n",b);

}

rand()产生的是0-1之间的数据
如果你想那样计算的话,可以写成
b=(rand()*20)%a;