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

Problem z (bodajże) tablicami

42 Warsaw Coding Academy
0 głosów
124 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 (155,180 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ź 390 wizyt
pytanie zadane 15 maja 2017 w C i C++ przez naryans Nowicjusz (140 p.)
0 głosów
4 odpowiedzi 318 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 290 wizyt
pytanie zadane 19 października 2015 w C i C++ przez Piotr Karaś Początkujący (460 p.)

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,738 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...