题目:输入一个3行4列的数组,找出该数组中绝对值最大的元素、输出该元素的绝对值及其两个下标值。如有多个输出行号最小的,还有多个的话输出列号最小的。
#include<stdio.h>
#include<math.h>
int main() {
int i, j;
int f[3][4];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
scanf_s("%d", &f[i][j]);
}
}
int max = f[0][0];
int a, b;
for (i = 0; i <3; i++)
{
for (j = 0; j <4; j++)
{
if (abs(f[i][j]) >=abs( max))
{
max = f[i][j];
a = i;
b = j;
}
}
}
printf("%d %d %d", abs(max), a+1, b+1);
return 0;
}
这个程序为什么不对?
为什么下面这个对?
```c
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,m1,m2,max,a[3][4];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]); //输入数组元素
}
}
max=a[0][0]; //给max赋初值
for(i=2;i>=0;i--)
{
for(j=3;j>=0;j--) //如果绝对值大于max记录角标
{
if(abs(a[i][j])>=abs(max))
{
max= a[i][j];
m1= i+1;
m2= j+1;
}
}
}
printf("%d %d %d",abs(max),m1,m2);
return 0;
}
```