Dlaczego program po zakończeniu działania wyświetla błąd, że przestał działać?

0

Witam mam problem wykonuję sobie cwiczenie w c++ napisałem program proszący o podanie liczby sprzedaży książek za 3 lata, niby program uruchamia się wczytuję dane od użytkownika wyświetla sumę i średnia. ale gry wykona się to wywala program przestał działac :( nie mam już siły co może być powodem.

#include <iostream>
#include <string>

using namespace std;

int
main ()
{
  string miesiace[12] =
    { "Styczen", "Luty", "Marzec", "Kwiecien", "Maj", "Czerwiec", "Lipiec",
    "Sierpien", "Wrzesien", "Pazdziernik", "Listopad", "Grudzien"
  };
  int sprzedaz[2][11];
  float wynik;
  float srednia = 0;

  for (int i = 0; i < 3; i++)
    {

      for (int j = 0; j < 12; j++)
	{

	  cout << "ile sprzedano ksiazek w miesiacu " << miesiace[j] << " - ";
	  cin >> sprzedaz[i][j];
	  wynik += sprzedaz[i][j];
	}
    }
  srednia = wynik / 36;
  cout << "Roczna sprzedaz ksiazek wyniosla - " << wynik << endl;
  cout << "Srednia " << srednia;

  return 0;
}
2

Brakuje miejsca w obu wymiarach tablicy sprzedaz.
Potrzebujesz tam zmieścić 3x12 (3 pętle (lata) po 12 miesięcy) - Ty masz 2x11.

Masz jeszcze Undefined Behaviour - wynik jest niezainicjalizowany a w kodzie robisz:

wynik += sprzedaz[i][j];
2

Po drugie: Zastanów się jeszcze, co dostaniesz gdy ktoś zamiast liczby książek wpisze choćby q, lub jakąkolwiek inną literkę niebędącą liczbą/cyfrą.
Warto zabezpieczać swój kod przed błędnymi działaniami użytkownika ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1