element minimalny
Ostatnio zmodyfikowano 2012-11-08 13:07
kama1992 Temat założony przez niniejszego użytkownika |
element minimalny » 2012-11-06 21:09:11 Cześć :)Mam problem z kodem do tego zadania: Napisz program, który znajdzie minimalny element w ciągu liczb całkowitych (typu int), zakończonych zerem. Nie wiadomo, ile liczb jest podanych na taśmie wejściowej. Ważne jest to, że za ostatnią liczbą znajduje się zero. Musisz więc wczytywać tak długo, dopóki nie wczytasz zera. Twoim zadaniem jest wypisanie minimalnej liczby spośród wszystkich podanych na taśmie wyjściowej (oprócz zera). Przykład: Dla danych wejściowych 4 5 -10 17 -2 9 0 poprawną odpowiedzią jest -10 Napisałam kod ale program podobno pracuje za długo. Czy ktoś ma pomysł jak zmniejszyć jego czas pracy ? Mój kod : int main() { int n; cin >> n; int i; int tab[ i ]; for( i = 0; i < n; i++ ) cin >> T[ i ]; while( n != 0 ) int m; int m = tab[ 0 ]; for( int i = 1; i < n; i++ ) { if( tab[ i ] < m ) m = tab[ i ]; } cout << m; return 0; } |
|
jsc |
» 2012-11-06 21:12:52 Twoje pętle for zamień na 1 pętlę do while z warunkiem biezacaLiczba != 0. |
|
kama1992 Temat założony przez niniejszego użytkownika |
» 2012-11-06 21:27:46 czyli tak : #include <iostream> using namespace std; int main() { int n; cin >> n; int i; int tab[ i ]; for( i = 0; i < n; i++ ) cin >> tab[ i ]; int m = tab[ 0 ]; do { int i = 1; i < n; i = i + 1; if( tab[ i ] < m ) m = tab[ i ]; } while( n != 0 ); cout << m; return 0; } |
|
jsc |
» 2012-11-06 21:40:35 Po co ci ta tablica? Można sprawdzać mimimum na bieżąco. |
|
DejaVu |
» 2012-11-06 21:46:30 Jeżeli ten program jest testowany na programach sprawdzających automatycznie poprawność rozwiązywania zadań to warto również zamienić cin/cout na printf/scanf. Można zyskać na tym ogromne przyśpieszenie jeżeli danych wejściowych/wyjściowych jest dużo, a algorytm rozwiązujący jest prosty (tj. wymaga złożoności obliczeniowej nie większej jak liniowo-logarytmiczna). |
|
kama1992 Temat założony przez niniejszego użytkownika |
» 2012-11-06 22:03:47 bo nie mam pomysłu jak napisać to bez tablic ;/
|
|
jsc |
» 2012-11-06 22:26:03 do { cin >> costam if( mim > costam ) { mim = costam; } } while( costam != 0 )
|
|
crash |
» 2012-11-08 13:07:36 Tak na przyszłość, uważaj co piszesz: while( n != 0 ) int m;
"Dopóki n jest różne od zero, deklaruj zmienną typu int" ...która po wyjściu z pętli nie będzie dostępna dla dalszej części programu ;) |
|
« 1 » |