c语言如何实现随机生成多个数组至少要100个
使用rand()函数+循环语句可生成一组随机数组。
1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数。rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。但这不是真正的随机数,C提供了srand()函数,它的原形是void srand( int a),用来设置一个种子数。在调用rand函数产生随机数前,应该先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。2、例程:
#include
#include
#include
void main(){
srand((unsigned)time(NULL)); //用当前系统时间设置种子
int a[100];
printf("随即初始化数组的100个数(范围是0~100).
");
for(int i=0;i<100;i++){
a[i]=rand()%101; //用rand函数生成0-100的随机数,并赋值给数组a[i]
printf("%4d",a[i]);
if(i%10==0 && i!=0)
printf("
");
}
getchar();
}
看代码:
#include #include void print_arr (int* a, int n){int i = 0;for (; i < n; ++i){printf ("%d ", a[i]); if ((i+1) % 10 == 0) { printf("
"); }}printf("
");}#define N 50int main(int argc, char** argv){ srand(time(NULL)); // 设置当前时间为随机数种子 int a[N], i;for (i = 0; i < N; i++){a[i] = rand() % 100 + 100;}print_arr(a, N); return 0;}运行:
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:
srand((unsigned)time(NULL));
for (int i = 0;i < 100; i++) {
printf("%d ", rand());
}
3、编译器运行test.cpp文件,此时成功随机生成了100个随机数。
C语言中随机函数需要使用到srand和rand。
srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子。每个种子对应一组根据算法预先生成的随机数,所以,在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数。[1]
库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:
函数一:int rand(void);
返回一个[0,RAND_MAX]间的随机整数。
函数二:void srand(unsigned seed);
参数seed是rand()的种子,用来初始化rand()的起始值。例程:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int a[8],i,j;
srand((unsigned)time(NULL));
for(j=1;j<101;j++){
printf("
第%d组随机数组:
",j);
for(i=0;i<8;i++){
a[i] =rand()%36+1;
printf("%-3d",a[i]);
}
}
return 0;
}
二维数组解决.
比如你要生成100套,每套8数据, 就定义a[100][8];
外循环用行下标, 内循环用列下标就行了, 如:
for (i = 0; i < 100; i++) {
for (j = 0; j < 8; j++) {
a[i][j] = rand() % 36 + 1;
}
}
如果你要判断, 必须不同, 那你再加相关进去, 不过不能再用j了, 因为j用来循环了.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int main() {
int a[N] = {0},i,j,num,flag;
srand((unsigned)time(NULL));
for(i = 0; i < N; ++i) {
flag = 1;
num = rand()%36 + 1;
for(j = 0;j <= i;j++) {
if(a[j] == num) {
flag = 0;
break;
}
}
if(flag) {
a[i] = num;
printf("%d ",a[i]);
}
else --i;
}
printf("
");
return 0;
}
嵌套循环就行了
c语言,如何产生随机数?
本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。\\x0d\\x0a\\x0d\\x0aC++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-random integral number)。生成随机数时需要我们指定一个种子,如果在程序内循环,那么下一次生成随机数时调用上一次的...
c语言,如何产生随机数
本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。\\x0d\\x0a\\x0d\\x0aC++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-random integral number)。生成随机数时需要我们指定一个种子,如果在程序内循环,那么下一次生成随机数时调用上一次的...
如何在C语言中生成一定范围内的随机数?
srand((int)time(NULL));设定随机数种子rand()%100;产生0-99的随机数。高级点的,假如要产生16-59之间的数,你可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况如法炮制!C语言中用rand()函数产生20-90的随机整数 20-90共有71个数字,所以是rand()%71+20 ;用rand(...
c语言,如何产生随机数
本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。\\x0d\\x0a\\x0d\\x0aC++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-random integral number)。生成随机数时需要我们指定一个种子,如果在程序内循环,那么下一次生成随机数时调用上一次的...
C语言中怎样随机产生一个四位数
这个就是随即产生4位数 rand()%10000 记的头文件声明stdlib.h 不然rand函数没法用的
randomize()在c语言中如何应用?
c include include include int main { \/\/ 使用当前时间作为种子值初始化随机数生成器 randomize);\/\/ 生成并打印随机数 printf);return 0;} 通过上述代码,每次运行程序时都会基于不同的时间点生成不同的随机数。这样,`rand`函数就能产生真正的随机结果。总结来说,`randomize`函数在C语言中用于初始...
c语言随机数函数是什么?
C语言随机函数主要用于实现一组随机数的生成。代码示例如下:include<stdio.h> include<stdlib.h> int main (){ int a;a=rand()%4;printf("%d\\n",a);return 0;} C预先生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以...
在C语言编程中,如何实现让电脑随机输出一1~9的整数?
rand()函数会返回一个伪随机数,但是这是通过一种数学公式推算出来的,得到的随机数分布太集中,这时候要使用srand()函数来设定产生随机数的种子,一般采用当前时间作为种子,这样可以得到分布比较均匀的伪随机数。rand(),srand()函数位于stdlib.h文件中,取得时间的time()函数位于time.h文件中。rand()%...
如何用c语言产生一定范围内的随机数?
利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1) 首先给srand()提供一个种子...
c语言中如何生成1个0到1的随机数
C语言中生成1个0到1的随机数可以执行语句:float b=rand()\/(RAND_MAX+1.0);解析:标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。rand()函数没有输入参数,直接通过表达式rand()来引用;用函数rand取得的随机数除以(...
贺夏阿伐: 需要准备的材料分别有:电脑、C语言编译器.1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp.2、在test.cpp文件中,输入C语言代码:srand((unsigned)time(NULL)); for (int i = 0;i < 100; i++) { printf("%d ", rand()); }3、编译器运行test.cpp文件,此时成功随机生成了100个随机数.
呼兰县19757304321: C语言编程随机生成20个正整数数组 - ?
贺夏阿伐: #include <stdio.h> #include <stdlib.h> #include <time.h>int main(int argc, char* argv[]) {int i, j;long n, arr[20]; srand(time(NULL)); for (i = 0; i < 20; i++) zhidaoarr[i] = rand(); for (i = 0; i < 20; i++){for (j = i; j < 20; j++){if (arr[i] < arr[j]){n = arr[i];...
呼兰县19757304321: C语言中如何生成一个随机数组 - ?
贺夏阿伐: 代码: #include<time.h> #include<stdlib.h> #include<stdio.h>void main() {srand( (unsigned)time( NULL ) );int a[100];printf("随即初始化数组的100个数(范围是0~100).\n");for(int i=0;i<100;i++){a[i]=rand()%101;printf("%4d",a[i]);if(i%10==0 && i!=0)printf("\n");}getchar(); }图:
呼兰县19757304321: C语言如何产生大范围随机数? - ?
贺夏阿伐: 用多个随机数,每个代表不同的位置,比如你这个可以产生3个单字节数,高字节加以限制,中字节,低字节在0-256内随机...或者用5个10以内随机数不就完了...
呼兰县19757304321: 怎么用C语言实现一个随机数数组 - ?
贺夏阿伐: #include#include#define MAXSIZE 100 void main() { srand(unsigned(time(0)));/*每次生成的数字都不一样*/ int Arr[MAXSIZE],n; printf("请输入你想生成多少数字?:"); scanf("%d",&n); for (int i=0;i
呼兰县19757304321: 用c语言怎样产生随机数啊..产生5个随机数..范围1到11的..如01,04,06,07,11,跪 - ?
贺夏阿伐: int a[5],i; for(i=0;i{ a[i]=rand()%12; } a[i]这个数组就存放了你要的那组数
呼兰县19757304321: 怎么用C语言生成随机数? - ?
贺夏阿伐: 生成1~13的随机数,随机数序列中没有重复字数 #include <stdio.h> #include <stdlib.h> // 包含rand()函数说明 #include <time.h> #define N 13 void main( void ) { inti, j, num[N], tmp; //用当前时间种子重置随机数生成器,使每次运行生成不同的...
呼兰县19757304321: 怎样用C语言产生随机数,1 - 100之间的 - ?
贺夏阿伐: #include #include int main(){ srand((unsigned int)time(0)); int a[20]; for(int i = 0; i < 20; i++) { a[i] = ...
呼兰县19757304321: C语言如何实现将几个数据随机分配到数组里 - ?
贺夏阿伐: #include #include int main() { int a[10]={0}; int i,count=0; srand(time(NULL)); while(1) { i=rand()%10; if ( a[i]==0 ) { a[i]=1; count++; if ( count >= 5 ) break ; } } for(i=0;i printf("%d = %d\n", i, a[i] ); return 0; }
呼兰县19757304321: C语言 随机数组 - ?
贺夏阿伐: void CreateMaze()//创建迷宫 { int max=max_x*max_y;//产生通路的参数,值越大障碍越少 int x,y; for(x=0;x for(y=0;y maze[x][y]=0; //先把迷宫全部设为墙壁 srand(time(0)); //随机函数种子发生器(以时间做参数) for(int i=1;i for(int j=1;j { x=...