Maksimum
Ostatnio zmodyfikowano 2017-04-09 00:12
carlosmay |
» 2017-04-06 19:36:17 Co znaczą te literki w kodzie? |
|
DarthBane Temat założony przez niniejszego użytkownika |
» 2017-04-06 20:04:59 n- wielkość ciągu liczb i- odlicza od 0 do n (czyli liczy ile wczytano liczb) c- wprowadzana liczba w ciągu n b- liczba, która jest największa w ciągu (a przynajmniej takie jest założenie) m- zmienna przechowująca dane
ale jak się na to wszystko patrze to widzę, że jest tak nasr*ne, że aż szkoda gadać ;/ |
|
michal11 |
» 2017-04-06 20:29:36 Twój program powinien działać na takiej zasadzie 1. wczytaj liczbę 2. sprawdź czy jest większa od dotychczasowego maksa 3 jeżeli tak to przypisz do maksa wczytaną liczbę 4. wypisz maksymalną liczbę i tyle, zainicjuj zmienną która ma trzymać maksa jako minus nieskończoność tak aby zawsze przy pierwszym obiegu pętli warunek został spełniony i maks został nadpisany. Potrzebujesz do tego pętli for, ifa, wczytywania i wypisywania na ekran i przypisywania zmiennej do zmiennej, chyba wszystkie potrzebne linki z odpowiednimi kursami dostałeś, inicjalizację maksa możesz napisać tak int currentMax = std::numeric_limits < int >::min(); i dopisz #include <limits> |
|
carlosmay |
» 2017-04-06 22:02:55 ale jak się na to wszystko patrze to widzę, że jest tak |
... zamotane. Warto to odmotać stosując opisowe nazwy zamiast literek i legendy :) |
|
DarthBane Temat założony przez niniejszego użytkownika |
» 2017-04-07 19:33:01 efekt wypocin :) #include <iostream> using namespace std;
int main() { int l; int j = 0; int a = - 1000000000; cin >> l; for( int i = 0; i < l; i++ ) { cin >> j; if( j > a ) a = j; cout << a << endl; } return 0; } |
|
michal11 |
» 2017-04-07 19:46:34 I dalej nazywasz bez sensu zmienne, zacząłem czytać twój program od ifa i nie miałem pojęcia o co chodzi i czy na pewno masz dobrze. Poza tym co się stanie jeżeli jako pierwszą liczbę wpiszę -1000000001? |
|
carlosmay |
» 2017-04-07 22:56:06 #include <iostream> #include <numeric>
int main() { int max_num = std::numeric_limits < int >::min(); int user_num; int loops; std::cin >> loops; for( int i { }; i < loops; ++i ) { std::cin >> user_num; if( user_num > max_num ) { max_num = user_num; std::cout << max_num << '\n'; } else { std::cout << max_num << '\n'; } } } Powinno działać. |
|
michal11 |
» 2017-04-07 23:25:04 if( user_num > max_num ) { max_num = user_num; std::cout << max_num << '\n'; } else { std::cout << max_num << '\n'; }
no to akurat nie jest do końca najlepsze "czyste" i to co napisał DarthBane było moim zdaniem lepsze if( user_num > max_num ) { max_num = user_num; } std::cout << max_num << '\n';
a jeszcze krócej można to zapisać tak for( int i = 0; i < loops; ++i ) { std::cin >> user_num;; max_num = std::max( max_num, user_num ); std::cout << max_num << "\n"; }
aczkolwiek nie jestem przekonany czy to już nie jest tylko sztuka dla sztuki |
|
1 « 2 » 3 |