Új hozzászólás Aktív témák

  • Ron Swanson

    senior tag

    Tudna valaki S.O.S. segíteni? :R

    Van egy feladatom amit nagyjából sikerült megcsinálnom, de van benne hiba.

    Ez a feladat:

    Így néz ki a kódom:

    #include <iostream>

    using namespace std;

    const int maxMatrix = 1000;
    int varosDb;
    int napDb;
    int homerseklet[maxMatrix][maxMatrix];

    int main()
    {
    std::ios::sync_with_stdio(false);

    cin >> varosDb >> napDb;

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

    int maxHomerseklet[maxMatrix]={};

    for(int i = 0; i < varosDb; i++){
    for(int j = 0; j < napDb; j++){
    if (homerseklet[i][j] > maxHomerseklet[j]){
    maxHomerseklet[j] = homerseklet[i][j];
    }
    }
    }

    int hanyszorVan[maxMatrix]={};
    int hanyszorVanHely[maxMatrix] = {};

    for(int i = 0; i < varosDb; i++){
    for(int j = 0; j < napDb; j++){
    if (homerseklet[i][j] == maxHomerseklet[j]){
    hanyszorVanHely[j] = i + 1;
    hanyszorVan[i]++;
    }
    }
    }

    int hanyszorVanMax = 0;

    for (int i = 0; i < varosDb; i++){
    if (hanyszorVan[i] > hanyszorVanMax){
    hanyszorVanMax = hanyszorVan[i];
    }
    }

    int darab = 0;

    for (int i = 0; i < varosDb; i++){
    if (hanyszorVanMax == hanyszorVan[i]){
    darab++;
    }
    }

    cout << darab << " ";

    for (int i = 0; i < darab; i++){
    cout << hanyszorVanHely[i] << " ";
    }

    return 0;
    }

    Probléma:
    A példa inputtal jól működik a program, de ha megváltoztatom az inputot pl erre:
    3 5
    10 15 12 10 10
    12 16 16 16 20
    12 16 16 16 20
    (a 2. és 3. sorban ugyanazok a számok vannak)
    akkor az outputra azt adja ki, hogy: 2 3 3
    De azt kéne kiadnia, hogy 2 2 3 (2 darab, 2. és 3. sor)

    Vagy egy másik input:
    5 5
    5 5 5 5 5
    2 2 2 2 2
    5 5 5 5 5
    4 4 4 4 4
    5 5 5 5 5

    Ennél az output: 3 5 5 5, de a helyes az 3 1 3 5 lenne

    Hogyan tudnám ezt javítani?

Új hozzászólás Aktív témák