题目描述
输入一个3行4列的数组,找出该数组中绝对值最大的元素、输出该元素及其两个下标值。如有多个输出行号最小的,还有多个的话输出列号最小的。
输入
无
输出
无
样例输入
1 2 3 5
-2 5 8 9
6 -7 5 3
样例输出
9 2 4
题目不难,但是需要注意几个细节:
1.题目描述为输出该元素,其实要输出该元素的绝对值,输入该元素原本的值的话系统判错。
2.我这里将绝对值最大的数的行号和列号分别赋给了a和b两个变量,但是要注意,在定义变量a和b时应赋初值。若不赋初值:
(1)若将Max的初值设置为0,那么有可能该数组所有元素绝对值均为0,这时便没有符合if条件的元素,因此a和b是没有值的。
(2)若将Max的初值设置为数组第一个元素的绝对值abs(num[0][0]),这时如果该数组的首个元素为绝对值最大的元素,那么同样a和b是没有值的。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num[3][4];
int fnum[3][4];
for(int i=0; i<3; i++)
for(int j=0; j<4; j++)
{
cin>>num[i][j];
fnum[i][j]=abs(num[i][j]);
}
int Max=fnum[0][0];
int a=0,b=0;
for(int i=0; i<3; i++)
for(int j=0; j<4; j++)
{
if(fnum[i][j]>Max)
{
Max=fnum[i][j];
a=i,b=j;
}
}
cout<<Max<<" "<<a+1<<" "<<b+1<<endl;
return 0;
}