[Rozdział 21] Zadanie 1
Ostatnio zmodyfikowano 2015-11-17 00:11
carlosmay |
» 2015-11-16 22:42:24 Skupiłem się na innym aspekcie, a tego to nie widziałem. do { if( ile == liczba ) return true; i++; } while( i < ile );
|
|
Szymislaw Temat założony przez niniejszego użytkownika |
» 2015-11-16 22:58:36 do { if( t[ i ] == liczba ) return true; i++; } while( i < ile );
@carlosmay Program działa i co najważniejsze wszystko rozumiem. Dziękuję bardzo za pomoc i cierpliwość :). @Gibas11 Chętnie zobaczę Twoje rozwiązanie. |
|
Gibas11 |
» 2015-11-16 23:06:48 Proszę bardzo: #include <iostream> #include <stdlib.h>
using namespace std;
int main() { srand( time( NULL ) ); int wyl[ 2 ] = { - 1, - 1 }; int tab[ 3 ]; for( int i = 0; i < 3; i++ ) cin >> tab[ i ]; for( int i = 0; i < 2; i++ ) { int r; do { r = rand() % 3; } while( r == wyl[ 0 ] or r == wyl[ 1 ] ); wyl[ i ] = r; } cout << tab[ wyl[ 0 ] ] << ", " << tab[ wyl[ 1 ] ]; return 0; }
|
|
carlosmay |
» 2015-11-16 23:35:17 Postaraj się napisać ten program w oparciu o funkcje. |
Treść zadania sugeruje pisać w oparciu o funkcje. Poza tym Zmodyfikuj program z pierwszego zadania tak, aby użytkownik musiał podać 10 liczb, a 8 z nich będzie losowanych bez powtórzeń. | while( r == wyl[ 0 ] or r == wyl[ 1 ] );
@Gibas11 można też napisać kod w oparciu o STL i wtedy będzie to kilka linijek. Kod nie musi być super krótki, tylko wielorazowego użytku. Jak rozmiary tablic poda jako zmienne stałe to otrzyma kod, w którym wystarczy zmienić wielkość tych dwóch zmiennych i ma drugie rozwiązanie. np. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int losuj( int n ) { return rand() % n; }
void wypelnij( int t[], int n ) { cout << "Podaj " << n << " liczb(y):\n "; for( int i = 0; i < n; i++ ) { cin >> t[ i ]; } }
bool czyByla( int t[], int iLiczba, int n ) { if( n == 0 ) return true; for( int i = 0; i < n; i++ ) if( t[ i ] == iLiczba ) return false; return true; }
int main() { srand( time( 0 ) ); const int SIZE1 = 3, SIZE2 = 2; int tab1[ SIZE1 ], tab2[ SIZE2 ]; wypelnij( tab1, SIZE1 ); int i = 0; while( i < SIZE2 ) { int los = losuj( SIZE2 ); if( czyByla( tab2, los, SIZE2 ) ) tab2[ i++ ] = los; } for( i = 0; i < SIZE2; i++ ) cout << tab1[ tab2[ i ] ] << endl; return 0; }
|
|
Gibas11 |
» 2015-11-16 23:47:12 O, wybacz, skupiłem się tylko na realizacji "wylosuj 2 z 3 bez powtórzeń", więc po stl'a i funkcję nawet nie sięgałem. Chociaż na upartego funkcję są: cin.operator <<(...) i main() , to już liczba mnoga. ^^ |
|
carlosmay |
» 2015-11-17 00:11:31 O, wybacz, skupiłem się tylko na realizacji "wylosuj 2 z 3 bez powtórzeń", więc po stl'a i funkcję nawet nie sięgałem. |
@Gibas11, to nie był przytyk. Podejrzewam, że władasz większą wiedzą w programowaniu ode mnie, więc nie mam zamiaru Cię 'ustawiać'. |
|
1 « 2 » |