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

Problem z (bodajże) tablicami

Object Storage Arubacloud
0 głosów
81 wizyt
pytanie zadane 16 października 2020 w C i C++ przez Kucharek Nowicjusz (150 p.)
otagowane ponownie 16 października 2020 przez Kucharek

Witam bardzo serdecznie,

rozwiązałem ćwiczenie z pewnej książki poświęconej programowaniu w C++. W ćwiczeniu chodziło napisanie programu, w którym użytkownik będzie musiał podać miesięczną liczbę sprzedaży danego produktu w sztukach. Takowy program napisałem, wszystko się ładnie kompiluje, a program działa pomyślnie. 

#include <iostream>

using namespace std;

int main()
{
    string miesiac[12]
    {
        "Styczen",
        "Luty",
        "Marzec",
        "Kwiecien",
        "Maj",
        "Czerwiec",
        "Lipiec",
        "Sierpien",
        "Wrzesien",
        "Pazdziernik",
        "Listopad",
        "Grudzien"
    };

    int sztuki[12], suma;

    for(int i=0; i<=11; i++)
    {
        cout << miesiac[i] << ", ile sztuk: "; cin >> sztuki[i];
        suma = suma + sztuki[i];
    }

    cout << "Suma za caly rok: " << suma << endl;

    return 0;
}

Jednak problemy przyszły w następnym zadaniu, w którym kazano mi użyć tablic dwuwymiarowych oraz zamiast zliczyć sumę sztuk z tylko 1 roku zliczyć ją z 3 lat.

#include <iostream>

using namespace std;

int main()
{
    string miesiac[12]
    {
        "Styczen",
        "Luty",
        "Marzec",
        "Kwiecien",
        "Maj",
        "Czerwiec",
        "Lipiec",
        "Sierpien",
        "Wrzesien",
        "Pazdziernik",
        "Listopad",
        "Grudzien"
    };

    int sztuki[3][12], suma[3];

    for(int i=0; i<=2; i++)
    {
        cout << "Rok " << i+1 << ":" << endl;

        for(int j=0; j<=11; i++)
        {
            cout << miesiac[j] << ", ile sztuk: "; cin >> sztuki[i][j];
            suma[i] = suma[i] + sztuki[i][j];
        }
    }

    for(int i=0; i<=2; i++)
    {
        cout << "Rok " << i+1 << " suma: " << suma[i];
    }

    return 0;
}

Program kompiluję się, jednak nie działa poprawnie. Oto wynik działania programu:

Rok 1:

Styczen, ile sztuk: 1

Styczen, ile sztuk: 1

Styczen, ile sztuk: 1

Styczen, ile sztuk: 1

Następnie program się kończy. Jeżeli ktoś w miarę swoich możliwości mógłby wytłumaczyć mi, o co chodzi, byłbym bardzo wdzięczny. Podobny błąd powtarza mi się już nie pierwszy raz.


Z góry przepraszam za wszelkie błędy, udzielam się na takowym forum pierwszy raz.

2 odpowiedzi

+1 głos
odpowiedź 16 października 2020 przez Whiskey_Taster Pasjonat (15,610 p.)
wybrane 16 października 2020 przez Kucharek
 
Najlepsza

Już na starcie widzę, że nigdzie nie zerujesz tablicy suma[3]. A przez to, że jej nie zerujesz, to każdy element tej tablicy zawiera jakieś śmieci, do których dodajesz wartości. 

Druga sprawa - masz błąd. 
 

for(int j=0; j<=11; i++)

Powinno być j++

komentarz 16 października 2020 przez Kucharek Nowicjusz (150 p.)
Już działa, dzięki za pomoc!
+1 głos
odpowiedź 16 października 2020 przez tangarr Mędrzec (154,860 p.)
W pętli wewnętrznej inkrementujesz złą zmienną. Ponadto nie inicjalizujesz wartości w tablicy suma.

Podobne pytania

0 głosów
1 odpowiedź 246 wizyt
pytanie zadane 15 maja 2017 w C i C++ przez naryans Nowicjusz (140 p.)
0 głosów
4 odpowiedzi 228 wizyt
pytanie zadane 20 października 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)
0 głosów
3 odpowiedzi 162 wizyt
pytanie zadane 19 października 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...