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

Tablice - zle liczy

–1 głos
217 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,360 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 337 wizyt
pytanie zadane 26 września 2016 w C i C++ przez krzysiek12345 Użytkownik (890 p.)
+1 głos
2 odpowiedzi 981 wizyt
pytanie zadane 4 listopada 2021 w C i C++ przez topol_123 Nowicjusz (190 p.)
+1 głos
1 odpowiedź 383 wizyt
pytanie zadane 19 kwietnia 2021 w C i C++ przez Dawidziu Bywalec (2,630 p.)

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...