编写函数求出二维整型数组中元素的最大值及其下标号。

2024-11-30 11:48:26
推荐回答(4个)
回答1:

一个函数只能有一个return,后面的return不会被执行。

解决方法可以考虑返回一个指针或者da函数传入一个全局变量的数组,在函数中修改这个数组的值。

#include

#include

void da(int a[][4],int n)

{

int i,j,row=0,col=0,max=a[0][0];

for(i=0;i

for(j=0;j<4;j++)

if(a[i][j]>max)

max=a[i][j];

row=i;

col=j;

printf("最大值:a[%d][%d]=%d\n",row,col,max);

int main()

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

da(a,n);

return 0;

}

扩展资料:

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算。

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

参考资料来源:百度百科-二维数组

回答2:

一个函数只能有一个return哦,后面的return不会被执行。解决方法可以考虑返回一个指针(这个指针指向构造包含m,x,max的数组)。或者da函数传入一个全局变量的数组,在函数中修改这个数组的值

回答3:

//你的错误太多,给你个新的
#include
#include
void da(int a[][4],int n)
{
int i,j,row=0,col=0,max=a[0][0];

for(i=0;ifor(j=0;j<4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
row=i;
col=j;
}
}
printf("最大值:a[%d][%d]=%d\n",row,col,max);
}
int main()
{
int i,j,n,a[10][4];

scanf("%d",&n);
for(i=0;ifor(j=0;j<4;j++)
scanf("%d",&a[i][j]);
da(a,n);
return 0;
}

回答4:

#include

int main()
{
int n,a[10][4];
int i,j,x,y;
int da(int b[10][4],int c,int *x,int *y);
scanf("%d",&n);
for(i=0;ifor(j=0;j<4;j++)
scanf("%d",&a[i][j]);
da(a,n,&x,&y);
printf("最大值a[%d][%d]=%d",x,y,a[x][y]);
}
void da(int b[][4],int c,int *x,int *y)
{
int i,j;
*x=*y=0;
for(i=0;i{for(j=0;j<4;j++)
if(b[i][j]>b[*x][*y])
{*x=i;
*y=j;
}}
}