Błąd SISEGV (segmentation fault)
Ostatnio zmodyfikowano 2012-11-23 18:30
Rebis Temat założony przez niniejszego użytkownika |
Błąd SISEGV (segmentation fault) » 2012-11-23 17:23:44 Zrobiłem na zadanie program, wyniki mam dobre, ale na stronie wyświetla mi sie, błąd podany w temacie. Zadanie: Napisz program, który wczyta c zestawów danych (c <= 1000), z których każdy składa się z jednej liczby całkowitej n (0 < n <= 1000), oraz następujących po sobie n liczbach z zakresu [0,9]. Dla każdego zestawu danych należy wypisać TAK, jeśli suma tych liczb dzieli się przez 3, bądź NIE w przeciwnym przypadku.
Przykład:
Wejście:
3 5 1 3 9 8 0 4 0 0 7 6 10 1 1 1 1 1 1 1 1 1 2 Wyjście:
TAK NIE NIE |
KOD: #include<iostream> using namespace std; int main() { int a = 0, z = 0, suma = 0; int c; cin >> c; int pierwsze[ 100 ]; int liczby[ 1000 ]; for( int i = 0; i < c; i++ ) { cin >> pierwsze[ a ]; for( int j = 0; j < pierwsze[ a ]; j++ ) { cin >> liczby[ z ]; z++; } a++; } a = 0; z = 0; for( int i = 0; i < c; i++ ) { for( int j = 0; j < pierwsze[ a ]; j++ ) { suma = suma + liczby[ z ]; z++; } if( suma % 3 == 0 ) cout << "TAK"; else cout << "NIE"; suma = 0; cout << endl; } return 0; } |
|
krzyk |
» 2012-11-23 17:35:36
//EDIT
Dobra nie aktualne:) |
|
krzyk |
» 2012-11-23 18:30:00 z przy dużym c i dużym pierwsze[] pójdzie w kosmos.
zobaczysz to w tym kodzie.
#include<iostream> using namespace std; int pierwsze[ 100 ]; int liczby[ 1000 ];
int main() { int a = 0, z = 0, suma = 0; int c = 1000; for( int i = 0; i < c; i++ ) { pierwsze[ a ] = rand() % 9; for( int j = 0; j < pierwsze[ a ]; j++ ) { liczby[ z ] = rand() % 100; z++; if( z > 1000 ) { cout << "sdfsdf"; } } a++; } a = 0; z = 0; for( int i = 0; i < c; i++ ) { for( int j = 0; j < pierwsze[ a ]; j++ ) { suma = suma + liczby[ z ]; z++; } if( suma % 3 == 0 ) cout << "TAK"; else cout << "NIE"; suma = 0; cout << endl; } cout << z << endl; return 0; }
|
|
« 1 » |