Zadanie domowe nr.1 rodział 21
Ostatnio zmodyfikowano 2018-09-23 16:07
wojcioo Temat założony przez niniejszego użytkownika |
Zadanie domowe nr.1 rodział 21 » 2018-09-22 22:49:40 Witam, mam drobny problem w zadaniu a mianowicie program mi losuje 2 różne od siebie liczby ale rzecz w tym ile razy bym nie wklepywał liczby to jestem pewien że zawsze losuje 2 pierwsze z tabeli 3 elementowej a tu chodzi o różne konfiguracje tych kluczy z tabeli 1 2, 1 3, 2,3 w różnej kolejności... Niestety nie wiem gdzie tkwi błąd a podejrzewam że jest to mały detal ;) Dzięki za naprowadzenie do rozwiązania :) #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
bool sprawdz( int tab[], int tabb[], int loss, int liczba ) { if( liczba <= 0 ) return false; int i = 0; do { if( tabb[ i ] == tab[ loss ] ) return true; i++; } while( i < liczba ); return false; }
void wczytaj( int tab[], int aa, int liczba ) { int i = 0; do { cin >> aa; tab[ i ] = aa; i++; liczba++; } while( liczba < 3 ); } int losuj() { return rand() % 3 + 0; }
int main() { srand( time( NULL ) ); int tablica[ 3 ]; int tablicalos[ 2 ]; int licznik = 0; int a; cout << "Podaj 3 liczby: " << endl; wczytaj( tablica, a, licznik ); int i = 0; int los = losuj(); licznik = 0; i = 0; do { if( sprawdz( tablica, tablicalos, los, licznik ) == false ) { tablicalos[ licznik ] = tablica[ los ]; licznik++; } i++; } while( i < 2 ); cout << "Wczytane liczby do tablicy to: " << endl; do { cout << tablicalos[ i ] << endl; i++; licznik++; } while( licznik < 3 ); return 0; }
[/i] |
|
pekfos |
» 2018-09-22 23:54:05 losuj() jest wywoływane tylko raz. |
|
wojcioo Temat założony przez niniejszego użytkownika |
» 2018-09-23 01:09:56 Dziękuję za szybką odpowiedź jednak próbowałem na różne sposoby w różne miejsca wywołać losuj() ale głowie się i nie mogę nic wymyśleć... Spróbowałem napisać jeszcze oddzielną funkcje sprawdzającą dla drugiej tablicy ale to też bez sensu, zamieniłem tą część kodu: if( sprawdz( tablica, tablicalos, los, licznik ) == false ) { int losowanko = tablica[ los ]; tablicalos[ licznik ] = losowanko; licznik++; } i++; } while( i < 3 );
to teraz losuje mi 2 ostatnie liczby z tabeli 3 elementowej :) Czyli podejrzewam że gdzieś tu jest błąd? |
|
pekfos |
» 2018-09-23 09:28:16 Pętla ma się wykonywać nie 2 razy, tylko aż wylosujesz 2 liczby. Losowanie ma być w pętli. |
|
Rogert |
Zadanie » 2018-09-23 15:10:17 Wojcioo a podaj całą treść zadania to postaram się pomóc :) |
|
wojcioo Temat założony przez niniejszego użytkownika |
» 2018-09-23 16:07:28 Rozwiązane, dziękuję ślicznie Pekfos za naprowadzenie do rozwiązania i nie dawanie gotowych rozwiązań:) |
|
« 1 » |