首页 > 解决方案 > C++ 2D 数组索引比较

问题描述

我需要 C++ 方面的帮助来完成学校任务。我真的不知道错误在哪里。它似乎跳过了第一行。

我应该将最高值与另一行的平均值进行比较。

任务:标准输入的第一行有城市数(1≤N≤1000)和天数(1≤M≤1000)。在下面的 N 行中,有 M 个每日预测温度值(-50≤Hi,j≤50)。在标准输出的第一行,你必须写城市号,最高预报必须低于其他城市的平均气温!如果没有,你应该写-1!

示例:输入

3 5
11 11 11 11 20
18 16 12 16 20
10 15 12 10 10

编码:

#include <iostream>
using namespace std;
int main() {
    int N, M;
    cin >> N;
    cin >> M;

    int homerseklet[N][M];
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cin >> homerseklet[i][j];
        }
    }

    int maxh[N] = {0}, osszh[N] = {0};
    for (int i = 0; i < N; i++)
    {
        maxh[i] = homerseklet[i][0];
        for (int j = 0; j < M; j++)
        {
            osszh[i] = osszh[i] + homerseklet[i][j];
            if (homerseklet[i][j] > maxh[i])
            {
                maxh[i] = homerseklet[i][j];
            }
        }
    }

    int atlag[N] = {0};
    for (int i = 0; i < N; i++)
    {
        atlag[i] = osszh[i] / M;
    }

    bool van = false;
    for (int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            if (i != j && maxh[i] < atlag[j])
            {
                if (van = true)
                {
                    cout << i + 1 << endl;
                }
            }
        }
    }

    if (!van)
    {
        cout << -1 << endl;
    }
    return 0;
}

标签: c++arraysmatrixmultidimensional-array

解决方案


推荐阅读