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

Lekcja 21 - Zadanie 1

Ostatnio zmodyfikowano 2013-09-10 19:21
Autor Wiadomość
Matzel
Temat założony przez niniejszego użytkownika
Lekcja 21 - Zadanie 1
» 2013-09-03 20:46:44
Witam,
Napisałem coś takiego, jak poniżej, problem w tym, że nic się nie wyświetla (dosłownie nic), wydaje mi się, że w funkcji bool sprawdzanie, cały program się zapętla, bo losuje po kilka razy tą samą liczbę i dlatego nie idzie dalej.
Pytanie, czy dobrze myślę, czy może problem jest gdzieś indziej?
Jeśli mam rację, czy da się coś z tym zrobić, czy założenie jest niepoprawne i muszę to napisać inaczej?
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>


using namespace std;

int losowanie() {
    srand( time( 0 ) );
    return( rand() % 10 ) + 1;
}

bool sprawdzanie( int liczba, int tab, int i )
{
    do {
        if( liczba != tab )
             i++;
        else sprawdzanie;
       
    } while( i < 5 || true );
   
}



int main() {
   
    int wylosowane[ 5 ];
    int i = 0;
    int nowaLiczba = losowanie();
    do {
        if( sprawdzanie( nowaLiczba, wylosowane[ 5 ], i ) == true )
             wylosowane[ i ] = losowanie();
       
        i++;
    } while( i < 5 );
   
    do {
        cout << "Liczby to " << wylosowane[ i ] << endl;
        i++; }
    while( i < 5 );
   
}

P-91492
killjoy
» 2013-09-03 20:56:13
Ciężko żeby się nie zapętlił, skoro w
while( i < 5 || true )
 dałeś sume logiczną z
true
, więc wyrażenie zawsze będzie prawdziwe.
P-91495
akwes
» 2013-09-03 21:00:23
C/C++
int losowanie() {
    srand( time( 0 ) );
    return( rand() % 10 ) + 1;
}
Nie. Nie tak się używa srand.

» Kurs C++ » Poziom 2Pseudolosowe liczby całkowite lekcja Wielka, czerwona ramka.
P-91497
Matzel
Temat założony przez niniejszego użytkownika
» 2013-09-03 21:34:03
faktycznie, już sam się zamotałem trochę z tym kodem :)
Poprawiłem, mimo wszystko efekt ten sam :/
P-91501
akwes
» 2013-09-03 21:39:07
Obie rady poprawiłeś oczywiście?

Dodatkowo dodam, że do funkcji sprawdź nie przesyłasz tablicy a jedynie piąty jej element.


C/C++
if( liczba != tab )
     i++;
else sprawdzanie;

To raczej nie jest to co czym myślałeś.
P-91503
Matzel
Temat założony przez niniejszego użytkownika
» 2013-09-10 19:21:50
Przepraszam, że dopiero teraz odpisuje, ale praca mnie ostatnio nagli.
Tak, poprawiłem obydwie.
Ostatnio sporo czytam i zaczynam przebudowywać swój kod :) Mam nadzieję, że zadziała.
P-91856
« 1 »
  Strona 1 z 1