Razor Temat założony przez niniejszego użytkownika |
[Kurs C++, Lekcja 22] Problem ze znalezieniem wartości minimalnej i maksymalnej » 2011-07-15 14:14:10 Witam W pracy domowej jest następujące zadanie: Napisz program który wykona wszystkie poniższe kroki w podanej kolejności: Program nie może używać pętli innych niż pętla for .
|
Napisalem program ale niestety mam z nim problemy nie wiem jak znaleźć minimum i maksimum. Drugi problem mam w wypisywaniu liczby od tylu,wypisuje mi liczby tylko nie wiem dlaczego gdy zaczynają wyświetlać się liczby od tylu wyskakuje mi jakaś liczba ,a ostatnią usuwa. Oto mój kod #include <iostream> #include <cstdlib> #include <iostream> #include <ctime> using namespace std; int losowanie( int tab[], int ile ) { srand( time( NULL ) ); int liczba = 0; for( int i = 0; i <= ile; i++ ) { tab[ i ] =( rand() % 22 ) + 10; }; } int wypisanie( int tab[], int ile ) { for( int i = 0; i < ile; i++ ) { cout << tab[ i ] << endl; }; } int wypisanieTyl( int tab[], int ile ) { cout << "\n" << endl; for( int i = 0; i < ile; ile-- ) { cout << tab[ ile ] << endl; }; } bool znajdzMin( int tab[], int ile ) { int liczba = 10; for( int i = 0; i < ile; i++ ) { if( tab[ i ] != liczba ) return false; else liczba++; }; return liczba; } int znajdzMax( int tab[], int ile ) { int liczba = 30; for( int i = 0; i < ile; i++ ) { if( tab[ i ] != liczba ) return false; }; return liczba; } int wypiszMinMax( int Min, int Max ) { cout << "\n" << endl; cout << Min << endl; cout << Max << endl; } int main() { int tab[ 10 ]; losowanie( tab, 10 ); wypisanie( tab, 10 ); wypisanieTyl( tab, 10 ); int iMin = znajdzMin( tab, 10 ); int iMax = znajdzMax( tab, 10 ); wypiszMinMax( iMin, iMax ); system( "pause" ); return 0; }
|
|
szyx_yankez |
» 2011-07-15 14:26:18 Kilka dni temu był już identyczny temat, poszukaj. |
|
Razor Temat założony przez niniejszego użytkownika |
soorka » 2011-07-15 14:28:01 Przepraszam, Szukałem i nic nie znalazłem rozwiązalem problem z Min i Max.Teraz nie wiem czemu losuje wypisuje mi tylko 8 liczba ,a później 10 Oto kod #include <iostream> #include <cstdlib> #include <iostream> #include <ctime> using namespace std; int losowanie( int tab[], int ile ) { srand( time( NULL ) ); int liczba = 0; for( int i = 0; i <= ile; i++ ) { tab[ i ] =( rand() % 21 ) + 10; }; } int wypisanie( int tab[], int ile ) { cout << "\n" << endl; for( int i = 0; i < ile; i++ ) { cout << tab[ i ] << endl; }; } int wypisanieTyl( int tab[], int ile ) { cout << "\n" << endl; for( int i = 0; i < ile; ile-- ) { cout << tab[ ile ] << endl; }; } int znajdzMin( int tab[], int ile ) { int liczba = 30; for( int i = 0; i < ile; i++ ) { if( tab[ i ] < liczba ) liczba = tab[ i ]; }; return liczba; } int znajdzMax( int tab[], int ile ) { int liczba = 0; for( int i = 0; i < ile; i++ ) { if( tab[ i ] > liczba ) liczba = tab[ i ]; }; return liczba; } int wypiszMinMax( int Min, int Max ) { cout << "\n" << endl; cout << Min << endl; cout << Max << endl; } int main() { int tab[ 10 ]; losowanie( tab, 10 ); wypisanie( tab, 10 ); wypisanieTyl( tab, 10 ); int iMin = znajdzMin( tab, 10 ); int iMax = znajdzMax( tab, 10 ); wypiszMinMax( iMin, iMax ); system( "pause" ); return 0; }
|
|
malan |
» 2011-07-15 17:50:53 1. Po pętli for nie stawiamy średnika. 2. for( int i = 0; i <= ile; i++ ) - błąd, wychodzisz poza zakres tablicy. 3. int liczba = 30; w int znajdzMin( int tab[], int ile ); - błąd, może to spowodować niepoprawne działanie programu. 4. Program się nie kompiluje: 1>------ Rebuild All started: Project: 4672, Configuration: Debug Win32 ------ 1> main.cpp 1>e:\programowanie\visual studio 2010 projects\4672\4672\main.cpp(8): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data 1>e:\programowanie\visual studio 2010 projects\4672\4672\main.cpp(15): error C4716: 'losowanie' : must return a value 1>e:\programowanie\visual studio 2010 projects\4672\4672\main.cpp(23): error C4716: 'wypisanie' : must return a value 1>e:\programowanie\visual studio 2010 projects\4672\4672\main.cpp(31): error C4716: 'wypisanieTyl' : must return a value 1>e:\programowanie\visual studio 2010 projects\4672\4672\main.cpp(61): error C4716: 'wypiszMinMax' : must return a value ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
|
|
imralav |
» 2011-07-15 18:08:02 funkcja srand( time( NULL ) ); chyba powinna być w main()? Do tego chyba brakuje Ci "return" w funkcjach. |
|
Razor Temat założony przez niniejszego użytkownika |
» 2011-07-15 20:12:00 int main() { 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; } |
To jest dokładna kopia z kursu tylko pozmieniałem nazwy ,jeżeli znajduje się tu błąd proponowałbym poprawić. Co to znaczy że program nie kompiluje? Jak mam poprawić int liczba = 30; w int znajdzMin( int tab[], int ile ); bez liczba funkcja nie wykonałaby swojej funkcji nie mam pojęcia jak to zmienić #include <iostream> #include <cstdlib> #include <iostream> #include <ctime> using namespace std; int losowanie( int tab[], int ile ) { srand( time( NULL ) ); for( int i = 0; i < ile; i++ ) { tab[ i ] =( rand() % 21 ) + 10; }; return 0; } int wypisanie( int tab[], int ile ) { cout << "\n" << endl; for( int i = 0; i < ile; i++ ) cout << tab[ i ] << endl; return 0; } int wypisanieTyl( int tab[], int ile ) { cout << "\n" << endl; for( int i = 0; i < ile; ile-- ) cout << tab[ ile ] << endl; return 0; } int znajdzMin( int tab[], int ile ) { int liczba = 30; for( int i = 0; i < ile; i++ ) { if( tab[ i ] < liczba ) liczba = tab[ i ]; }; return liczba; } int znajdzMax( int tab[], int ile ) { int liczba = 0; for( int i = 0; i < ile; i++ ) { if( tab[ i ] > liczba ) liczba = tab[ i ]; }; return liczba; } int wypiszMinMax( int Min, int Max ) { cout << "\n" << endl; cout << Min << endl; cout << Max << endl; return 0; } int main() { int tab[ 10 ]; losowanie( tab, 10 ); wypisanie( tab, 10 ); wypisanieTyl( tab, 10 ); int iMin = znajdzMin( tab, 10 ); int iMax = znajdzMax( tab, 10 ); wypiszMinMax( iMin, iMax ); system( "pause" ); return 0; }
|
|
DejaVu |
» 2011-07-15 20:23:10 |
|
malan |
» 2011-07-15 20:30:04 W kodzie z kursu nie ma błędu :) Błąd zrobiłeś Ty w kilku miejscach w programie :) Co to znaczy że program nie kompiluje? |
To, że kompilator nie mógł przetłumaczyć kodu C++ na kod wynikowy (zrozumiały dla komputera), gdyż w kodzie wystąpiły błędy. |
|
« 1 » 2 |