Pętla z cin dla dużych ilości danych, zawieszenie programu
Ostatnio zmodyfikowano 2016-10-20 22:23
Remdel Temat założony przez niniejszego użytkownika |
Pętla z cin dla dużych ilości danych, zawieszenie programu » 2016-10-20 19:09:38 Witam, mam program który musi m.in. być w stanie wczytać do 1999 liczb (1 lub 0) oddzielonych spacjami. Konkretniej dla liczby n wczytuje w n-1 wierszy rosnącą ilość jedynek lub zer np. 3 0 0 0 Używam do tego strumienia wejścia, a pętla (w uproszczeniu) wygląda następująco: for( int i = 1; i < n; i++ ) for( int a = 0; a < i; a++ ) cin >> m;
Działa ona jednak do momentu aż liczba wprowadzanych w jednej linii numerów jest gdzieś w okolicach 260, potem program "zapycha się". Przerobienie danych wejściowych na liczby oddzielone enterami nie rozwiązuje problemu. Z czego wynika problem i jak mogę go rozwiązać? |
|
michal11 |
» 2016-10-20 19:38:34 Pokaż więcej kodu bo na 90% gdzieś indziej robisz jakiś błąd. |
|
Remdel Temat założony przez niniejszego użytkownika |
» 2016-10-20 19:50:52 int main() { ios_base::sync_with_stdio( 0 ); bool ** miasta; bool m; cin >> n; miasta = new bool *[ n ]; for( int i = 0; i < n; i++ ) miasta[ i ] = new bool[ n ]; for( int i = 0; i < n; i++ ) for( int a = 0; a < n; a++ ) miasta[ i ][ a ] = 0; int suma = 0, ilosc = 0; for( int i = 1; i < n; i++ ) for( int a = 0; a < i; a++ ) { cin >> m; ilosc++; miasta[ i ][ a ] = m; if( m == 1 ) { miasta[ a ][ i ] = 0; suma++; } else miasta[ a ][ i ] = 1; }
Wartości ilość i suma są wykorzystane w dalszej części kodu, mogę jednak z nich zrezygnować, jeśli są związane z problemem. |
|
mateczek |
» 2016-10-20 20:13:08 to jest jakieś zadanie na spoju czy co ?? bo chyba nie wklepujesz takiej tablicy ręcznie ?? 260*260 to jest 67600 elementów do wklepania :P |
|
michal11 |
» 2016-10-20 20:15:51 Czekaj, chcesz powiedzieć, że wpisywałeś ręcznie 260 zer lub jedynek w konsoli ? |
|
Remdel Temat założony przez niniejszego użytkownika |
» 2016-10-20 20:54:24 To zadanie na tegoroczną Olimpiadę Informatyczną. Robię sobie dane testowe przez program generujący same zera (w odpowiednich ilościach) a potem je wklejam. Program zawiesza się jednak zarówno przy moim wklejaniu jak i przy ich testach (działających w systemie plik.in). PS możesz zwracać się do mnie w rodzaju żeńskim (wiem, że płeć nie wynika z nicku) ;) Poza tym nie wpisuję pełnej macierzy (połowa wypełnia się sama, jako odbicie, ponieważ jest to graf skierowany). Dane w uproszczeniu wyglądają +/- tak 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0
Itd. aż do ilości liczb w linii odpowiadającej n-1. |
|
michal11 |
» 2016-10-20 22:23:08 Program się zawiesza czy wyłącza ? Dostajesz jakiś błąd ? Jeżeli tak to go wklej. Próbowałaś odpalać pod debuggerem ? Skoro dane i tka generujesz do pliku to po co wklejać je do konsoli ? Nie możesz od razu wczytywać z tego pliku ? |
|
« 1 » |