Program przestaje działać - błąd 0xC0000005
Ostatnio zmodyfikowano 2013-06-08 15:40
n00bwcepie Temat założony przez niniejszego użytkownika |
Program przestaje działać - błąd 0xC0000005 » 2013-06-08 12:22:06 Piszę program będący kalkulatorem dla macierzy: #include<iostream> #include<fstream> #include<cstdlib> using namespace std;
void sumamacierzy(); int macierza[ 10 ][ 10 ]; int kolumnya; int wierszea; int macierzb[ 10 ][ 10 ]; int kolumnyb; int wierszeb; int macierzwyniku[ 10 ][ 10 ]; void wczytywaniezklawiaturya(); void wczytywaniezklawiaturyb(); void mnozenieprzezliczbe();
int main() { cout << "ile wierszy ma macierz a?" << endl; cin >> wierszea; cout << "ile kolumn ma macierz a?" << endl; cin >> kolumnya; cout << "ile wierszy ma macierz b?" << endl; cin >> wierszeb; cout << "ile kolumn ma macierz b?" << endl; cin >> kolumnyb; wczytywaniezklawiaturyb(); wczytywaniezklawiaturya(); int sterowanie; cout << "co chcesz zrobic? \n 1-dodac macierze \n 2-tanczyc czacze \n 3-pomnozyc macierz przez liczbe" << endl; cin >> sterowanie; switch( sterowanie ) { case 1: if( wierszea == wierszeb && kolumnya == kolumnyb ) { sumamacierzy(); } else { cout << "ilosc kolumn a musi sie rownac ilosci kolumn b. To samo tyczy sie wierszy" << endl; } break; case 2: cout << "czaczacza" << endl; break; case 3: { mnozenieprzezliczbe(); } } return 0; system( "pause" ); }
void wczytywaniezklawiaturya() { for( int i = 0; i < kolumnya; i++ ) { for( int j = 0; j < wierszea; j++ ) { cout << "podaj A" << i << j << endl; cin >> macierza[ i ][ j ]; } } }
void wczytywaniezklawiaturyb() { for( int i = 0; i < wierszeb; i++ ) { for( int j = 0; j < kolumnyb; j++ ) { cout << "podaj B" << i << j << endl; cin >> macierzb[ i ][ j ]; } } }
void sumamacierzy() { for( int i = 0; i < wierszea; i++ ) { for( int j = 0; j < kolumnya; j++ ) { macierzwyniku[ i ][ j ] = macierza[ i ][ j ] + macierzb[ i ][ j ]; } } for( int i = 0; i < wierszea; i++ ) { for( int j = 0; j < kolumnya; j++ ) { cout << macierzwyniku[ i ][ j ] << endl; } } }
void mnozenieprzezliczbe() { int mnoznik; cout << "przez co chcesz pomnozyc?" << endl; cin >> mnoznik; for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 3; i++ ) { macierzwyniku[ i ][ j ] = mnoznik * macierza[ i ][ j ]; } } cout << "cyce" << endl; for( int i = 0; i < wierszea; i++ ) { for( int j = 0; j < kolumnya; j++ ) { cout << macierzwyniku[ i ][ j ] << endl; } } }
Program się świetnie kompiluje, ale kiedy zażądam, żeby pomnożył daną macierz przez liczbę, to po wpisaniu tej liczby wywala mi taki błąd: Nazwa zdarzenia problemu: APPCRASH Nazwa aplikacji: kalkulator.exe Wersja aplikacji: 0.0.0.0 Sygnatura czasowa aplikacji: 51b2fb5c Nazwa modułu z błędem: zaalllliiiiii.exe Wersja modułu z błędem: 0.0.0.0 Sygnatura czasowa modułu z błędem: 51b2fb5c Kod wyjątku: c0000005 Przesunięcie wyjątku: 00001889 Wersja systemu operacyjnego: 6.1.7600.2.0.0.256.1 Identyfikator ustawień regionalnych: 1045 Dodatkowe informacje 1: 0a9e Dodatkowe informacje 2: 0a9e372d3b4ad19135b953a78882e789 Dodatkowe informacje 3: 0a9e Dodatkowe informacje 4: 0a9e372d3b4ad19135b953a78882e789
Kiedy wykasuję funkcję mnożącą macierz przez liczbę, lub użyję funkcji np. dodawania lub tańczenia (taki test, czy wszystko działa) to wszystko gra. Co robić? PS: wiem, że nie powiniennem używać tylu zmiennych globalnych, ale wdrożenie lokalnych planuję na później. Jak się pozbyć tego błędu? |
|
ison |
» 2013-06-08 14:21:53 for( int j = 0; j < 3; i++ ) i++? |
|
n00bwcepie Temat założony przez niniejszego użytkownika |
-.- » 2013-06-08 15:40:49 <epicki facepalm> jak mogłem to przeoczyć???
Dzięki ison. Naprawdę jesteś niesamowity, że znalazłeś takie małe badziewie :D Kiedy już będę dobrym programistą to zrobię program który znajduje takie niedoróbki, a nie że przyzwoitym ludziom głowy zawracać. |
|
« 1 » |