// 求2维数组中最大的数字,编译没有问题,但是运行时出现错误,请高手指点。
#include <stdio.h>
int max1(int **array,int m,int n)
{
int i,j,max11;
max11=array[0][0];
for (i=0;i<m ;i++ )
{
for (j=0;j<n ;j++ )
{
if (array[i][j]>max11)
{
max11=array[i][j];
}
}
}
return(max11);
}
int main()
{
int a[3][4]={{2,3,4,5},{6,3,2,1},{9,3,0,6}};
int b;
b = max1((int **)a,3,4);
printf("the max value is: %d",b);
return 0;
}
----------------解决方案--------------------------------------------------------
以下是我的个人看法。不知道对不
#include <stdio.h>
int max1(int **array,int m,int n) /*改为 int max1(int array[][4],int m,int n) 就可以了*/
{
int i,j,max11;
max11=array[0][0];
for (i=0;i<m ;i++ )
{
for (j=0;j<n ;j++ )
{
if (array[i][j]>max11)
{
max11=array[i][j];
}
}
}
return(max11);
}
int main()
{
int a[3][4]={{2,3,4,5},{6,3,2,1},{9,3,0,6}};
int b;
b = max1((int **)a,3,4);
printf("the max value is: %d",b);
return 0;
}
因为是二维数组,所以在传递的过程中,要知道它的每一维有多少个变量,而不在乎它有多少维。
你用**array,好像体现不出来。
我觉得最好先将二维转化为一维,再通过函数查找比较好。
因为你也看到我修改的那一个东东,也要知道每一维有多少个变量,如果不知道,那我也没有办法了。
高手们有招的话,一定要说出来。
不要保留
多多交流
----------------解决方案--------------------------------------------------------
我对指针不太了解,也稍微改了一下,可以了,贴出来大家看看!
#include <stdio.h>
int max1(int array[3][4],int m,int n)~~~~~~~~~~
{
int i,j,max11;
max11=array[0][0];
for (i=0;i<m ;i++ )
{
for (j=0;j<n ;j++ )
{
if (array[i][j]>max11)
{
max11=array[i][j];
}
}
}
return(max11);
}
int main()
{
int a[3][4]={{2,3,4,5},{6,3,2,1},{9,3,0,6}};
int b;
b = max1(a,3,4);~~~~~~~~~~~~~
printf("the max value is: %d",b);
return 0;
}
----------------解决方案--------------------------------------------------------
谢谢大家的意见!
但是,我有点糊涂,不是传递地址进去就可以吗?
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int max1(int array[3][4],int m,int n)//*array[3][4]为与a[3][4]对应的变量*//
{
int i,j,max11;
max11=array[0][0];
for (i=0;i<m ;i++ )
{
for (j=0;j<n ;j++ )
{
if (array[i][j]>max11)
{
max11=array[i][j];
}
}
}
return(max11);
}
int main()
{
int a[3][4]={{2,3,4,5},{6,3,2,1},{9,3,0,6}};
int b;
b = max1(a,3,4);//*a代表数组a[3][4]的首地址*//
printf("the max value is: %d",b);
return 0;
}
这样变了之后你再试一试!
----------------解决方案--------------------------------------------------------
这样就把数组a[3][4]的首地址传给了array[3][4]
----------------解决方案--------------------------------------------------------
呵呵,不好意思,我刚才才看到原来3楼的那为仁兄已经贴出来了
----------------解决方案--------------------------------------------------------
呵呵,还是要谢谢楼上的朋友。
----------------解决方案--------------------------------------------------------