作业帮 > 综合 > 作业

C语言如何srand和rand函数产生10个1-100内的随机数

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 10:04:32
C语言如何srand和rand函数产生10个1-100内的随机数
10个是任意的,也可能是100个,1-100也是任意的.
C语言如何srand和rand函数产生10个1-100内的随机数
#include <stdlib.h>#include <stdio.h>#include <time.h>#define N 10#define M1 1#define M2 100void main(){int i=0,temp;int a[N];srand(time(0));      while(1){temp=rand();if((temp>=M1)&&(temp<=M2)){*(a+i) = temp; printf("%d\n",*(a+i));i++;}if(i==N)break;} printf("\n");} 
再问: 你这个产生随机数后再判断大小,如果是1-100就输出,可能其实产生的是100个随机数,只有10个是1-100的,这样感觉有点浪费时间。。虽然都是瞬间就出来了。。能不能直接限制产生随机数的大小?
再答: #include #include #include #define N 10 void main() { int i=0,temp; int a[N]; srand(time(0)); while(1) { temp=rand()%100; *(a+i) = temp; printf("%d\n",*(a+i)); i++; if(i==N)break; } printf("\n"); }
再问: rand()%100表示产生1-100的随机数,如果要生成x-y范围的随机数呢?
再答: 实际上rand()%100只能是产生0到99之间的数。既然是srand是随机函数,就不应该会有范围的限制,有了限制的生成就不叫随机生成了。因此只能是通过判断来选择在x-y范围的随机数。