Damfled Temat założony przez niniejszego użytkownika |
Poziom 2 lekcja 22 zadanie trzecie. » 2016-12-28 18:24:55 int znajdzMinimum( int tablica[], int ile ) { std::cout << "Znajduje najmniejsza liczbe..." << std::endl; int liczba = tablica[ 0 ]; for( int licznik = 0; licznik < ile; licznik++ ) for( liczba; liczba > tablica[ licznik ]; ) liczba = tablica[ licznik ]; return liczba; }
Chcę zrozumieć cały program zanim pójdę dalej. |
|
carlosmay |
» 2016-12-28 19:16:54 // dlaczego zmienna liczba musi = tablica[] żeby znaleźć najmniejsza liczbę? w ten sposób informuje program żeby szukał w przedziale tablicy i nie wychodził po za nią? |
A jakich innych liczba tam się spodziewasz? Przecież szukasz wśród liczb w tablicy. int liczba = tablica[ 0 ]; |
- tutaj inicjalizujesz zmienną pierwszą wartością tablicy, a później sprawdzasz, czy każdy następny jest mniejszy. Pętle można z powodzeniem zacząć od licznik = 1; , bo pierwszy element już jest przypisany. Dlaczego tak? for( liczba; liczba > tablica[ licznik ]; ) liczba = tablica[ licznik ]; |
a nie tak? if( liczba > tablica[ licznik ] ) { liczba = tablica[ licznik ]; } Sensownie nazwij zmienne. |
|
Damfled Temat założony przez niniejszego użytkownika |
» 2016-12-29 20:26:44 Dziękuję za odpowiedź. Wytłumaczenie pomogło w dokładniejszym zrozumieniu. :) Jak napiszę: if( liczba > tablica[ licznik ] ) { liczba = tablica[ licznik ]; }
Wyświetla error: expected ';' before ')' token i error: expected ';' before 'return'. Kiedy napiszę: for( liczba; liczba > tablica[ licznik ]; ) liczba = tablica[ licznik ];
Nie wyświetla błędów. Różnica tylko że zmienna wpisałem w miejsce deklaracji zmiennej i jest ';' po tablicy w pętli for. Co do nazywania zmiennych wciąż się uczę. :) |
|
carlosmay |
» 2016-12-29 21:55:52 Wstaw kod dla takiego błędu: Wyświetla error: expected ';' before ')' token i error: expected ';' before 'return'. |
|
Damfled Temat założony przez niniejszego użytkownika |
» 2016-12-30 10:00:02 #include <iostream> #include <cstdlib> #include <ctime>
void wylosujLiczby( int wylosowane[], int ile ) { for( int wylosowanych = 0; wylosowanych < ile; wylosowanych++ ) wylosowane[ wylosowanych ] =( std::rand() % 20 ) + 10; }
void wypiszTablice( int tablica[], int ile ) { for( int wypisanych = 0; wypisanych < ile; wypisanych++ ) std::cout << tablica[ wypisanych ] << ", "; std::cout << std::endl; }
void wypiszTabliceOdTylu( int tablica[], int ile ) { for( int wypisanych = 9; wypisanych >= 0; wypisanych-- ) std::cout << tablica[ wypisanych ] << ", "; std::cout << std::endl; }
int znajdzMinimum( int tablica[], int ile ) { int liczba = tablica[ 0 ]; for( int elementow = 1; elementow < ile; elementow++ ) for( liczba > tablica[ elementow ] ) liczba = tablica[ elementow ]; return liczba; }
int znajdzMaksimum( int tablica[], int ile ) { int liczba = tablica[ 0 ]; for( int elementow = 1; elementow < ile; elementow++ ) for( liczba < tablica[ elementow ] ) liczba = tablica[ elementow ]; return liczba; }
void wypiszMinMax( int iMin, int iMax ) { std::cout << "Najmniejsza liczba to: " << iMin << "\nNajwieksza liczba to: " << iMax << std::endl; } int main() { srand( time( NULL ) ); int tablica[ 10 ]; wylosujLiczby( tablica, 10 ); wypiszTablice( tablica, 10 ); wypiszTabliceOdTylu( tablica, 10 ); int iMin = znajdzMinimum( tablica, 10 ); int iMax = znajdzMaksimum( tablica, 10 ); wypiszMinMax( iMin, iMax ); return 0; }
|
|
carlosmay |
» 2016-12-30 11:31:13 Miałeś wstawić kod z if em, który generuje powyższy błąd. |
|
Damfled Temat założony przez niniejszego użytkownika |
» 2016-12-30 12:03:34 "Miałeś wstawić kod z if em, który generuje powyższy błąd." Nie rozumiem co mam wstawić, możesz jakoś inaczej napisać to zdanie? :) Program który wstawiłem wyżej po uruchomieniu wyświetla błędy które wypisałem. |
|
carlosmay |
» 2016-12-30 15:50:31 Jak napiszę:
if( liczba > tablica[ licznik ] ) { liczba = tablica[ licznik ]; } Wyświetla error: expected ';' before ')' token i error: expected ';' before 'return'. |
Chcę, żebyś wstawił kod z zastosowaniem tej instrukcji warunkowej w twoim kodzie. |
|
« 1 » 2 |