欧酷网

您的位置:主页>后端>

问题 1532: [蓝桥杯][算法提高VIP]数组输出(C++)

题目不难,但是需要注意几个细节:
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;}

相关文章推荐