greenhouse Temat założony przez niniejszego użytkownika |
» 2011-04-20 09:56:38 Napisałem kod jeszcze raz po przejrzeniu wszystkich adekwatnych artykułów kursu i niestety ciągle nie działa tak jak powinno. Mógłby ktoś rzucić na to okiem. Mam pewnie coś źle z tym licznikiem i będę wdzięczny za konkretną informację co jest źle, a jeszcze lepiej za pokazanie jak to zmienić.
Dzięki.
#include <iostream> #include <cstdlib> #include <ctime>
int wpisz( int a[], int i ) { do { std::cin >> a[ i ]; i++; } while( i < 3 ); }
int losowanie( int max, int min ) { return( rand() % max ) + min; }
bool bezPowtorzen( int tab[], int wynik, int i ) { if( i < 1 ) return true; if( tab[ i ] == tab[ wynik ] ) return false; return true; }
int main() { srand( time( NULL ) ); int liczby[ 3 ]; int licznik = 0; wpisz( liczby, licznik ); do { int wynik = losowanie( 3, 0 ); if( bezPowtorzen( liczby, wynik, licznik ) == true ) { std::cout << liczby[ wynik ] << std::endl; licznik++; } } while( licznik < 2 ); return 0; }
|
|
greenhouse Temat założony przez niniejszego użytkownika |
» 2011-04-20 20:49:11 To moze ktos kto to zrobil wrzuci po prostu rozwiazanie? |
|
Elano92 |
» 2011-04-20 20:51:13 Pff.. co ja piszę , radzę Ci poczytać z 5-6 razy rodziały mi to pomogło. |
|
greenhouse Temat założony przez niniejszego użytkownika |
» 2011-04-20 20:57:16 A ten program działa w ogóle?
Mi się kompiluje, ale kompletnie nic nie robi (nie można wpisać żadnych liczb, ani nie wyświetla żadnych liczb). |
|
Elano92 |
» 2011-04-20 21:05:25 #include <cstdlib> #include <iostream>
using namespace std; int main() { int y, x, a, error, tab[ 5 ]; for( y = 0; y < 6; y++ ) { do { error = 0; a = rand() % 6 + 1; for( x = 0; x < y; x++ ) { if( tab[ x ] == a ) error = 1; } } while( error ); tab[ y ] = a; } for( y = 0; y < 6; y++ ) { cout << tab[ y ] << endl; } system( "PAUSE" ); return 0; }
A może ten kod sprubój wsadzić w funkcje wg mnie jest bardziej czytelny. |
|
greenhouse Temat założony przez niniejszego użytkownika |
» 2011-04-20 21:16:32 Ta funkcja losuje z konkretnego przedziału liczbowego, a moim największym problemem jest losowanie randomowych elementów tablicy, która została wpisana. Wpadłem już na to, że możma losować indeks tablicy, a nie cały element, ale wtedy jest problem ze skutecznym sprawdzeniem czy dany element był już w tablicy. |
|
Elano92 |
» 2011-04-20 21:19:27 tak prubowałeś ?? wylosujLiczby( tablica, 999, min, max ); |
|
greenhouse Temat założony przez niniejszego użytkownika |
» 2011-04-20 21:24:26 a jak w funkcji ma to wyglądać?
Nie wiem jak połączyć rand() z tablicą.
Można zrobić
return (rand() % max) + min - losowanie indeksów
Albo
tab [ i ] = rand()
tylko w tym przypadku 'i' ma być zmienna lokalna czy musi być globalna, która później zostanie przesłana do innych funkcji?
Dobrze w ogóle myślę? |
|
1 « 2 » 3 |