当前位置:首页 » 编程语言 » c语言随机二维数组

c语言随机二维数组

发布时间: 2023-03-25 16:31:44

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

程序主要通过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 = 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;i<m;i++)
for(j=0;j<n;j++)
p[i][j]=rand()%(max-min+1)+min;
printf("%d*%d二维数组为:\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;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函数提供不同的种子值,进而产生不同的随机数序列。

热点内容
csgo如何连服务器 发布:2024-11-03 02:13:04 浏览:391
斯坦福python 发布:2024-11-03 01:47:08 浏览:609
乘法编程教程 发布:2024-11-03 01:37:06 浏览:693
咒怨2ftp 发布:2024-11-03 01:31:17 浏览:431
linux如何安装telnet 发布:2024-11-03 01:20:20 浏览:83
苹果手机怎么加密软件 发布:2024-11-03 01:20:16 浏览:885
微信存储路径删除 发布:2024-11-03 01:14:09 浏览:392
c语言贪吃蛇源码 发布:2024-11-03 00:57:15 浏览:120
八码算法 发布:2024-11-03 00:56:31 浏览:975
python怎么念 发布:2024-11-03 00:56:22 浏览:222