二维数组应用及调用相关问题

img


分为几个函数之后,不知道其他函数及主函数如何调用二维数组,希望得到解答

方法中,直接双重循环遍历判断。
用一个变量记录最大值,一个变量记录最大值对应的下标。
二维数组在主函数中定义,然后作为参数传到其他函数中。
代码如下:

#include <iostream>
using namespace std;
void Input_sz(int a[][5]);
void Sum_sz(int a[][5]);
void Max_sz(int a[][5]);

 
int main()
{
    int a[5][5];
    Input_sz(a);
    Sum_sz(a);
    Max_sz(a);
    return 0;
}
void Input_sz(int a[][5])
{
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
            cin >> a[i][j];
}
void Sum_sz(int a[][5])
{
    int i,sum=0;
    for (i = 0; i < 5; i++)
        sum += a[i][i];
    cout<< "主对角线各元素之和:"<< sum << endl;
}
void Max_sz(int a[][5])
{
    int x=0,y=0;
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
        {
            if (a[i][j]>a[y][x])
            {
                y=i;
                x=j;
            }
        }
    cout << "最大的数:"<<a[y][x]<< " 所在行号:" << y << "所在列号:" << x << endl;
}

img

你题目的解答代码如下:

#include <iostream>
using namespace std;

void Input_sz(int a[][5])
{
    int i,j;
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            cin >> a[i][j];
        }
    }
}
void Sum_sz(int a[][5])
{
    int i,sum=0;
    for (i = 0; i < 5; i++)
    {
        sum += a[i][i];
    }
    cout << "对角线之和:" << sum << endl;
}
void Max_sz(int a[][5])
{
    int i,j,x=0,y=0;
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            if (a[i][j]>a[y][x])
            {
                y=i;
                x=j;
            }
        }
    }
    cout << "最大值:" << a[y][x]  << " 行下标:" << y << " 列下标:" << x << endl;
}

int main()
{
    int a[5][5];
    Input_sz(a);
    Sum_sz(a);
    Max_sz(a);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632