Lekcja 21 losowanie 8 z 10
Ostatnio zmodyfikowano 2014-10-26 19:59
matys210 Temat założony przez niniejszego użytkownika |
Lekcja 21 losowanie 8 z 10 » 2014-10-25 19:07:48 Nie mam już pomysłu dlaczego mi to nie działa. Wpisywanie ok ale gdy komp zgaduje wartości to już jest klapa. Dzięki z góry za pomoc.
#include "stdafx.h" #include <iostream> #include <ctime> #include <cstdlib>
using std::cin; using std::cout; using std::endl;
void wczytanie( int t[] ); void losowanie( int t[] ); bool spr( int t[], int l[] ); bool spr2( int l[], int );
int main() { int t[ 10 ]; wczytanie( t ); losowanie( t ); cin.get(); cin.get(); return 0; }
void losowanie( int t[] ) { srand( time( NULL ) ); int l[ 8 ], i = 0, r = 0; int j = 1; do { do { r =( rand() % 1000 ); } while( spr2( l, r ) || spr( t, l ) ); l[ i ] = r; cout << "Pewnie wpisales " << l[ i ] << endl; ++i; } while( ++j != 9 ); }
void wczytanie( int t[] ) { cout << "Podaj 10 liczb od 0 do 999\n"; for( int i = 0; i < 10; ++i ) { cin.clear(); cin >> t[ i ]; } }
bool spr( int t[], int l[] ) { for( int i = 0; i < 8; ++i ) { for( int r = 0; r < 10; ++r ) if( l[ i ] == t[ r ] ) return true; } return false; }
bool spr2( int l[], int r ) { for( int i = 0; i < 8; ++i ) { if( r == l[ i ] ) return true; } return false; }
|
|
Jacob99 |
» 2014-10-26 14:12:13 Zrób tak: 1.Wczytaj liczby do kontenera. 2.Wylosuj liczby z zakresu 0-9. 3.Sprawdź, czy wylosowana liczba jest unikatowa(czy się nie powtarza). 4.Wypisz zawartość wylosowanych pól kontenera. |
|
Rashmistrz |
» 2014-10-26 16:04:58 Wpisywanie ok ale gdy komp zgaduje wartości to już jest klapa. |
Idziesz w złym kierunku. Komputer nie ma zgadywać, a wylosować 8 z podanych. Chociaż on nie musi zgadywać, bo je już zna tylko o tym nie wie. ... ale i tak ten programik warto naprawić chociażby dla treningu. ^_^ Główny cel: [...]8 z nich będzie losowanych bez powtórzeń.[...] |
|
|
matys210 Temat założony przez niniejszego użytkownika |
» 2014-10-26 19:59:14 No tak, czytać się nie potrafi. Dzięki :) |
|
« 1 » |