需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:
for (int i = 0; i < 10; i++)
printf("%d ", rand() % 100 +1);
3、编译器运行test.cpp文件,此时成功通过rand产生了10个1-100内的整数。
先用srand函数设置一个种子,一般为当前时间,然后使用rand函数产生随机数,如产生a~b的随机数使用表达式rand()%(b-a+1)+a。
注意:srand函数在头文件#include <stdlib.h>中。
示例代码:
#include <stdio.h>#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define N 10
#define M1 1
#define M2 100
void 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范围的随机数。
本回答被提问者采纳