• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablice - zle liczy

Object Storage Arubacloud
–1 głos
148 wizyt
pytanie zadane 25 września 2021 w C i C++ przez Clemontos Nowicjusz (160 p.)

Witam,

 
 

#include <bits/stdc++.h>

using namespace std;


int main()
{

    int m, n, hasze=0,ruchy=0, najwiekszaW, najwiekszaK;
    cin >> m >> n;
    char plansza [m+1] [n+1];
    int wiersz=1, kolumna=1;
    int haszeW [m+1] = {};
    int haszeK [m+1] = {};
    for (int i=1; i<=m; i++ )
    {
        for (int i=1; i<=n; i++)
        {
            cin >> plansza [wiersz][i];
            if (plansza [wiersz][i] == '#'){
                haszeW[wiersz]++;
                hasze++;
                }
        }
        wiersz++;
    }

    for (int i=1; i<=n; i++)
    {
        for (int i=1; i<=m; i++)
        {
            if (plansza [i][kolumna] == '#'){
                haszeK[kolumna]++;

            }
       }
       kolumna++;
    }
// Szuka najwiekszego wiersza
    najwiekszaW = haszeW[1];
    for (int i=1; i<=m; i++)
    {
        if (haszeW[i] > najwiekszaW)
            najwiekszaW = haszeW[i];
    }
// Szuka najwieksza kolumne
    najwiekszaK= haszeK[1];
    for (int i=1; i<=m; i++)
    {
        if (haszeK[i] > najwiekszaK)
            najwiekszaK = haszeK[i];
    }

    cout <<najwiekszaK << " " << najwiekszaW << " " << hasze;


    return 0;
}

 

Kod pokazuje zły wynik "NajwiekszaW", lecz jeżeli usunę haszeK[kolumna]++ to będzie działać poprawnie

komentarz 25 września 2021 przez Oscar Nałogowiec (29,290 p.)

Kompletnie nie mam pojęcia co ten program ma robić (może podaj założenia), ale widzę kilka dziwnych kontrukcji.

1. Dziwnie ideksujesz tablice - od 1, ale kompensujesz to dająć o 1 więcej pozycji. OK, tylko trochę szkoda pamięci.

2. Masz macierz m * n i wektory - domyślam się że kolumn i wierszy.  Tylko dlaczego oba wektory mają taki sam rozmiar - chyba jeden powinnien mieć m a drugi n?

3. Dwie pętle, jedna w drugiej i obie indeksowana tak samo nazwaną zmienną - może to zadziała, ale niedostępna będzie zewnętrzny indeks. Załatwiasz to dodatkową zmienną, ale ogólnie to nieczytelne.

3. Dziwnie je zapełniasz - jak napotkasz # to przechodzisz do następnej kolumny/wierszy, ale nie 'zerujesz' drugiego indeksu, wiec będzie coś takiego jak wydruk z LF bez CR

1234567890123
             abcdefhg
    

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 151 wizyt
pytanie zadane 26 września 2016 w C i C++ przez krzysiek12345 Użytkownik (890 p.)
+1 głos
2 odpowiedzi 544 wizyt
pytanie zadane 4 listopada 2021 w C i C++ przez topol_123 Nowicjusz (190 p.)
+1 głos
1 odpowiedź 174 wizyt
pytanie zadane 19 kwietnia 2021 w C i C++ przez Dawidziu Bywalec (2,610 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...