Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Rozdział 21] Złe działanie programu z zadania domowego

Ostatnio zmodyfikowano 2015-12-05 23:20
Autor Wiadomość
baddevil96
Temat założony przez niniejszego użytkownika
[Rozdział 21] Złe działanie programu z zadania domowego
» 2015-12-05 22:52:09
Programik działa cacy, lecz zamiast wypisać 2 losowych liczb z 3 podanych (bez powtorzen), wypisuje 2 razy tą samą liczbe. Program sklada sie praktycznie z samych funkcji i zaczelo mi sie mieszac, nie udało mi sie samemu znaleźć błędu, proszę o pomoc.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int wprowadz( int tab[], int ilosc ) {
    int i = 0;
    do {
        cin >> tab[ i ];
        i++;
    } while( i < ilosc );
   
}

bool czyPowtarza( int tab[], int liczba, int i )
{
    if( i <= 0 )
         return false;
   
    int warunek = 0;
    do {
        if( tab[ warunek ] == liczba ) {
            return true;
        }
        warunek++;
    } while( warunek < i );
   
    if( warunek == i )
         return false;
   
}

int wypisz( int tab[], int ilosc ) {
    int i = 0;
    do {
        cout << tab[ i ] << endl;
        i++;
    } while( i < ilosc );
   
}

int losuj( int tab[], int ilosc, int i, int tablica2[] ) {
    int i2 = 0;
    int liczba;
    do {
        liczba = tab[( rand() % 2 ) + 0 ];
        if( czyPowtarza( tab, liczba, i ) == false ) { //tu tkwi błąd
            tablica2[ i2 ] = liczba;
            i2++;
        }
    } while( i2 < ilosc );
   
}

int main()
{
    srand( time( NULL ) );
    int tablica[ 999 ];
    int tablica2[ 999 ];
    wprowadz( tablica, 3 );
    int i = 0;
    do {
        losuj( tablica, 2, i, tablica2 );
        i++;
    } while( i < 2 );
   
    wypisz( tablica2, 2 );
   
}

edit
Nie ma lepszego uczucia niz dojsc samemu do rozwiazania problemu, dzieki za pasywnosc :D
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int wprowadz( int tab[], int ilosc ) {
    int i = 0;
    do {
        cin >> tab[ i ];
        i++;
    } while( i < ilosc );
   
}

bool czyPowtarza( int tab[], int liczba, int i )
{
    if( i <= 0 )
         return false;
   
    int warunek = 0;
    do {
        if( tab[ warunek ] == liczba ) {
            return true;
        }
        warunek++;
    } while( warunek < i );
   
    if( warunek == i )
         return false;
   
}

int wypisz( int tab[], int ilosc ) {
    int i = 0;
    do {
        cout << tab[ i ] << endl;
        i++;
    } while( i < ilosc );
   
}

int losuj( int tab[], int ilosc, int i, int tablica2[] ) {
    int i2 = 0;
    int liczba;
    do {
        liczba = tab[( rand() % 10 ) + 0 ];
        if( czyPowtarza( tablica2, liczba, i2 ) == false ) { //tu juz go nie ma
            tablica2[ i2 ] = liczba;
            i2++;
        }
    } while( i2 < ilosc );
   
}

int main()
{
    srand( time( NULL ) );
    int tablica[ 999 ];
    int tablica2[ 999 ];
    wprowadz( tablica, 10 );
    int i = 0;
    do {
        losuj( tablica, 8, i, tablica2 );
        i++;
    } while( i < 8 );
   
    wypisz( tablica2, 8 );
   
}
P-141459
carlosmay
» 2015-12-05 23:20:35
nw
P-141461
« 1 »
  Strona 1 z 1