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

Python08

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

#include<time.h>

#include<stdio.h>

#include<stdlib.h>

int main()

{

srand(time(0))

int i,j

for(i=0i<2i++)

{

for(j=0j<3j++)

{

int a=rand()%10

printf("%5d",a)

}

printf("\n")

}

return 0

}

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

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

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

#include<stdio.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(max<min)//保证max大于min

{

tmp=max

max=min

min=max

}

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

if(NULL==p)

exit(1)

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

{

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

if (NULL==p[i])

exit(1)

}

srand(time(NULL))

for(i=0i<mi++)

for(j=0j<nj++)

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

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

for(i=0i<mi++)

{

for(j=0j<nj++)

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

printf("\n")

}

for (i = 0i <ni++)

{

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函数提供不同的种子值,进而产生不同的随机数序列。

a[i][k]=float(rand()%10)

改成

a[j][k]=float(rand()%10)

你的j写成i了。。。。。。。