Run,Forrest,run 2019-05-07 09:15 采纳率: 100%
浏览 435
已采纳

动态内存的二维数组,随机赋值时行大于列即出错,反之无问题

#include
#include

int main(void)
{
int i,j,n,m,**array,max;
printf("input the row and column of your array:\n");
scanf("%d%d",&m,&n);
array=malloc(m*sizeof(int*));
for(i=0;i<n;i++)
{
array[i] =malloc(n*sizeof(int));
}
printf("$$$$$");
system("pause");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
array[i][j]=rand();
printf("i%d j%d\n",i,j);
}
}

max=array[0][0];
for(i=0;i<m;i++)
{
    for(j=1;j<n;j++)
    {
        if(max<array[i][j])
        max=array[i][j];
    }
}
    for(i=0;i<m;i++)
{
    for(j=1;j<n;j++)
    {
        if(max==array[i][j])
        printf("the position of the max : row=%d  column=%d   ",i,j);
    }
}
for(i=0;i<m;i++)
{
    free(array[i]);
 } 
 free(array);
return 0;

}

  • 写回答

3条回答 默认 最新

  • 基本没有毒性 2019-05-07 10:43
    关注

    为每一列分配内存的时候,for(i=0;i<n;i++)这里的n应该改为m

    另外,使用rand函数前应该先用srand提供种子,最好再调用一下rand使数据更随机

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog