[C++] Zadanie domowe. Poziom 2. Lekcja 21. Losowanie bez powtórzeń
Ostatnio zmodyfikowano 2013-04-25 19:59
lancher Temat założony przez niniejszego użytkownika |
[C++] Zadanie domowe. Poziom 2. Lekcja 21. Losowanie bez powtórzeń » 2013-04-25 18:33:40 Witam. Zwracam sie z prosba o pomoc i porade.. Mecze sie z drugim zadaniem czyli : 2. Zmodyfikuj program z pierwszego zadania tak, aby użytkownik musiał podać 10 liczb, a 8 z nich będzie losowanych bez powtórzeń. Sprawdź czy wyniki są poprawne. Jak mi sie wydaje doszedlem juz do rozwiazanie problemu logicznego ale dalej chyba motam cos w kodzie... Kogos bardziej doswiadczonego prosze o ewentualnei wskazanie bledow w kodzie jak i doradzenie w kwestii skrocenia kodu itp. Aktualnie program wyswietla mi jakies nie zadeklarowane w ogole liczby. Kod: #include <iostream> #include <cstdlib> #include <ctime> #include <cstdio> using namespace std;
bool BylaLosowana( int iLiczba, int tab[], int ile ) { if( ile <= 0 ) return false; int i = 0; do { if( tab[ i ] == iLiczba ) return true; i++; } while( i < ile ); return false; }
void Wypisanie( int tab[], int a ) { a = 0; cout << "Wylosowane liczby to: " << endl; do { cout << tab[ a ] << " , "; a++; } while( a < 8 ); }
void Wartosc( int wpis[], int los[], int licz, int wynik[], int zmienn ) { int a = 0; do { los[ a ] = zmienn; wpis[ zmienn ] = wynik[ a ]; a++; } while( a < 8 ); } int Losuj() { int c; c =( rand() % 10 ) + 1; cout << c; return c; }
int Wprowadzenie( int wyjscie[] ) { cout << "Podaj 10 liczb z ktorych program wylosuje 8 bez powtorzen..." << endl; int a = 0; do { cin >> wyjscie[ a ]; a++; } while( a < 10 ); } int main() { srand( time( 0 ) ); int podane[ 10 ], wylosowane[ 8 ], wyjsciowe[ 8 ], a = 0, b = 0, liczba; Wprowadzenie( podane ); do { liczba = Losuj(); if( BylaLosowana( liczba, wylosowane, a ) == false ) { wylosowane[ a ] = liczba; a++; } } while( a < 8 ); Wartosc( podane, wylosowane, a, wyjsciowe, b ); Wypisanie( wyjsciowe, a ); return 0; }
|
|
pekfos |
» 2013-04-25 18:47:50 Aktualnie program wyswietla mi jakies nie zadeklarowane w ogole liczby. |
int Losuj() { int c; c =( rand() % 10 ) + 1; cout << c; return c; } |
|
lancher Temat założony przez niniejszego użytkownika |
» 2013-04-25 18:49:20 napisalem to tylko po to zeby upewnic sie czy losuje mi dobrze a pozniej zapomnailem usunac ;) nie powinno miec wplywu na program :D a liczby niezadeklarowane wyswietlaja mi sie oczywiscie w wyniku ;) |
|
pekfos |
» 2013-04-25 19:01:10 wpis[ zmienn ] = wynik[ a ];
|
|
lancher Temat założony przez niniejszego użytkownika |
» 2013-04-25 19:30:52 okej wyjde na debila ktory nawet gdy otrzymna odpowiedz na tacy to nie wie co zrobic ale po 30 minutach analizowania nie wiem co jest zle... wiem ze nie powinno sie podawac rozwiazania bo powinienem sam na to wpasc nie mniej jednak prosze o jakas podpowiedz... |
|
pekfos |
» 2013-04-25 19:51:29 a = b; przypisuje b do a , a nie odwrotnie. |
|
lancher Temat założony przez niniejszego użytkownika |
» 2013-04-25 19:59:22 wielkie dzieki ;) musialem nie doczytac tego bo jestem pewien ze gdzies w kursie to jest ;) gdyby nie to popelnialbym jeszcze wiecej takich bledow ;) dzieki wielkie za pomoc. temat do zamkniecia ;) |
|
« 1 » |