C语言问题,如下。

来源:百度知道 编辑:UC知道 时间:2024/09/27 21:25:01
有3×3的数组,键盘输入数据。求数组中所有数组元素的最大值和最大值所在的行和列。

main()
{
float a[3][3],max;
int i,j;
printf("input array a:");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
{ for(j=1;j<3;j++)
if(max<a[i][j])
max=a[i][j];
}
printf("i=%d,j=%d,max=%f",i,j,max);
}

请问当中哪里错了?说明一下。

你这个程序max是对的,但是i,j值不对,运行后一定是3,3

main()
{
float a[3][3],max;
int i,j;
int m,n; //用来记录max的行和列
printf("input array a:");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
max=a[0][0];
for(i=0;i<3;i++)
{ for(j=1;j<3;j++)
if(max<a[i][j]){
max=a[i][j];
m=i; //记录行
n=j; //记录列
}
}
printf("i=%d,j=%d,max=%f",m,n,max);
}

最大值的位置没有记录

if(max<a[i][j])
{
max=a[i][j];
maxi = i;
maxj = j;
}
printf("i=%d,j=%d,max=%f",maxi,maxj,max);

#include"stdio.h"
main()
{
int a[3][3],m=0,n=0;
int i,j;
printf("input array a:");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
a[m][n]=a[0][0];
for(i=0;i<3;i++)
{ for(j=1;j<3;j++)
if(a[m][n]<a[i][j])
a[m][n]