随机函数c语言二维数组 随机函数 c语言

C语言编程,如何自动生成一个二维数组

程序主要通过malloc函数动态生成数组,srand和rand函数配合生成随机数据,代码如下,

在休宁县等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、做网站 网站设计制作按需网站设计,公司网站建设,企业网站建设,品牌网站建设,营销型网站,外贸网站制作,休宁县网站建设费用合理。

//程序功能,实现自定义m*n二维数组,随机生成给定范围max-min的数组元素

#includestdio.h

#include stdlib.h

#include time.h

void main()

{

int i=0,j=0;

int m=0,n=0;//数组维数

int max=0,min=0;//数组数据范围

int **p=NULL;//二维指针,存放m*n个元素

int tmp;

printf("请输入数组维数m和n:");

scanf("%d %d",m,n);

printf("请输入数组元素最大最小值max和min:");

scanf("%d %d",max,min);

if(maxmin)//保证max大于min

{

tmp=max;

max=min;

min=max;

}

p=(int**)malloc(m*sizeof(int*));//先分配m个一维指针

if(NULL==p)

exit(1);

for (i = 0; i n ; i++)

{

p[i] = (int*)malloc(n*sizeof(int));//为m个一维指针分配n个整型大小的空间

if (NULL==p[i])

exit(1);

}

srand(time(NULL));

for(i=0;im;i++)

for(j=0;jn;j++)

p[i][j]=rand()%(max-min+1)+min;

printf("%d*%d二维数组为:\n",m,n);

for(i=0;im;i++)

{

for(j=0;jn;j++)

printf("%d\t",p[i][j]);

printf("\n");

}

for (i = 0; i n; i++)

{

free(p[i]);

p[i]=NULL;

}

free(p);

p=NULL;

}

void *malloc( size_t size );如果分配成功则返回指向被分配内存的指针,指针指向一个大小为size的内存空间;如果错误发生返回NULL。

一般srand和rand配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

C语言,生成二维数组随机数

#includetime.h

#includestdio.h

#includestdlib.h

int main()

{

srand(time(0));

int i,j;

for(i=0;i2;i++)

{

for(j=0;j3;j++)

{

int a=rand()%10;

printf("%5d",a);

}

printf("\n");

}

return 0;

}

只要求输出的话不用把数存起来吧

C语言中如何产生随机的二维数组的坐标

使用随机函数即可产生随机数。

1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数

2、但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。

3、在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。

举例:

#include stdio.h

#include stdlib.h 

#include time.h

int main()

{

int a[10][2];

int i,j,x,y;

srand(time(NULL));/*随机数种子*/ 

for ( i=0;i10;i++)

for ( j=0;j2;j++)

{

a[i][j]=0+ rand()%10;/*产生0到10(不包括10)之间的随机数*/ 

}

printf("输出元素:\n");

for ( i=0;i10;i++)

for ( j=0;j2;j++)

{

printf("a[%d][%d]=%d ",i,j,a[i][j]);

if((j+1)%2==0)

printf("\n");

}   

getchar();

return 0;

}

C语言怎么用随机函数过二维数组赋值

VC中使用srand()来初始化为随机数生成器。

#includestdlib.h

void main()

{

int i;

randomize();

printf("Ten random numbers from 0 to 99\n\n");

for(i=0;i10;i++)

printf("%d\n",rand()%100);

}

注:可以在TC2.0中运行通过,在VC6.0不能运行。

[以上摘自百度百科]

所以你应该使用srand()来作为随机初始化。

如果一定要用的话,你就只能换编译器。

#includecstdio

#includecstdlib

#includectime

int a[110][110];

int main(){

//time(0)返回的是一个和系统时间有关的值,将其作为随机种子可以使得每次随机种子的值不一样,也就在后面的rand()中不会输出同样的值,达到了初始化随机的作用。

srand(time(0));

int n=5,m=6,mod=100;

for(int i=1;i=n;i++)

for(int j=1;j=m;j++)

a[i][j]=rand()%mod+1;

for(int i=1;i=n;i++){

for(int j=1;j=m;j++)

printf("%d ",a[i][j]);

putchar('\n');

}

return 0;

}


分享文章:随机函数c语言二维数组 随机函数 c语言
分享网址:http://scyanting.com/article/ddigjje.html