Lich555 Temat założony przez niniejszego użytkownika |
Pętla for - ostatnie zadanie domowe - ulepszenie » 2015-11-20 20:57:02 Witam. Czy ten program da się jakoś znacząco zmienić, skrócić, tak, żeby działał bez zarzutu? Jest to program dot. poniższego zadania domowego: Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:
-Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy; -Wypisuje 10 wylosowanych liczb od początku do końca; -Wypisuje 10 wylosowanych liczb od końca do początku; -Znajduje najmniejszą oraz największą wylosowaną liczbę. -Wypisuje najmniejszą i największą wylosowaną liczbę.
Program nie może używać pętli innych niż pętla for
|
#include <iostream> #include <cstdlib> #include <time.h>
using namespace std;
void wypiszMinMax( int imin, int imax ) { cout << imin << endl; cout << imax << endl; }
int minimum( int iLiczba[], int ile ) { int imin = iLiczba[ 0 ]; for( int i = 0; i < ile; i++ ) if( imin > iLiczba[ i ] ) imin = iLiczba[ i ]; return imin; }
int maximum( int iLiczba[], int ile ) { int imax = iLiczba[ 0 ]; for( int i = 0; i < ile; i++ ) if( imax < iLiczba[ i ] ) imax = iLiczba[ i ]; return imax; }
void wypiszkon( int iLiczba[], int ile ) { for( int i = ile - 1; i >= 0; i-- ) cout << iLiczba[ i ] << endl; cout << endl; }
void wypisz( int iLiczba[], int ile ) { for( int i = 0; i < ile; i++ ) cout << iLiczba[ i ] << endl; cout << endl; }
void los( int iLiczba[], int ile ) { for( int i = 0; i < ile; ++i ) iLiczba[ i ] =( rand() % 21 ) + 10; }
int main() { srand( time( NULL ) ); int liczba[ 10 ]; los( liczba, 10 ); wypisz( liczba, 10 ); wypiszkon( liczba, 10 ); int iMax = maximum( liczba, 10 ); int iMin = minimum( liczba, 10 ); wypiszMinMax( iMin, iMax ); return 0; }
|
|
carlosmay |
» 2015-11-20 21:19:59 int iMax = maximum( liczba, 10 ); int iMin = minimum( liczba, 10 ); wypiszMinMax( iMin, iMax );
można zamienić na cout << "Min: " << minimum( liczba, 10 ) << ", Maks: " << maximum( liczba, 10 ) << endl;
wtedy funkcja 'wypiszMinMax()' jest zbędna. |
|
Gibas11 |
» 2015-11-20 21:25:15 Kod wygląda całkiem nieźle, na pierwszy rzut oka nie ma się do czego przyczepić. Chociaż ja w parametrach funkcji przyjmujących tablicę wolę zamiast int iLiczba[] używać int * iLiczba , ale to tylko moja subiektywna opinia. EDIT: @Up Chyba autorowi chodziło po części o poćwiczenie używania funkcji, chociaż rzeczywiście byłoby krócej. EDIT2: Chociaż ten kawałek nawet przy założeniu stosowania wielu funkcji mógłby wyglądać trochę lepiej: wypiszMinMax( minimum( liczba, 10 ), maximum( liczba, 10 ) ); |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2015-11-20 22:27:54 Doklejam jeszcze coś, na czym się wzorowałem, bo po prostu na końcu tematu było pokazane jak powinna wyglądać funkcja main. 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; }
@carlosmay Dokładnie tak jak powiedział kolega. Wszystko ma być zawarte w funkcjach co można zauważyć w powyższym kodzie. @Gibas11 Co do wskaźników, to nie używam ich, bo jeszcze nie miałem ich w tym kursie. Oglądałem coś o nich, ale nie znam ich jeszcze dobrze. |
|
carlosmay |
» 2015-11-21 00:32:08 ostatnie zadanie domowe - ulepszenie Czy ten program da się jakoś znacząco zmienić, skrócić, tak, żeby działał bez zarzutu? |
To zadawaj pytania konkretnie. Nic nie napisałeś o trzymaniu się scenariusza. Dokładnie tak jak powiedział kolega. Wszystko ma być zawarte w funkcjach co można zauważyć w powyższym kodzie. |
gdzie tak sugerowała treść posta? Jest tylko przytoczona treść zadania dla informacji. Wg której masz skrócony kod. Która część treści nie jest wykonana z tego co dostałeś? |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2015-11-21 07:38:17 Spokojnie :P Zdaję sobie dobrze sprawę, że jest to temat dosyć niekonkretny. Nikt nie ma do Ciebie pretensji :P |
|
« 1 » |