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

Program nie losuje bez powtórzeń.

Ostatnio zmodyfikowano 2014-12-07 16:19
Autor Wiadomość
TheNasster
Temat założony przez niniejszego użytkownika
Program nie losuje bez powtórzeń.
» 2014-12-07 15:24:46
Ma ktoś jakiś pomysł jak to naprawić?
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int los()
{
    return( rand() % 10 ) + 1;
}
bool spr( int tabela[], int ile, int licz )
{
    if( ile <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tabela[ i ] == licz );
       
        return true;
        i++;
    } while( i < ile );
   
    return false;
}
int main()
{
    srand( time( 0 ) );
    int tab[ 5 ];
    int i = 0;
    do
    {
        int liczba = los();
        if( spr( tab, i, liczba ) == false );
       
        {
            tab[ i ] = liczba;
            i++;
        } //if
    } while( i < 5 );
   
    i = 0;
    do
    {
        cout << tab[ i ] << "\n";
        i++;
    } while( i < 5 );
   
    return 0;
}
P-122471
TheNasster
Temat założony przez niniejszego użytkownika
» 2014-12-07 16:06:59
W funkcji
int main()
 w linijce
if( spr( tab, i, liczba ) == false );
 wystarczy usunąć
;
P-122472
Rashmistrz
» 2014-12-07 16:15:01
Źle dobrałeś zwracane
wartości w funkcji "spr",
wszystkie na odwrót są... :F

PS.
C/C++
if( wyrazenieLogiczne == true )...
//powyższy zapis jest równoważny poniższemu:
     if( wyrazenieLogiczne )...

PS2. Średnik:
if( tabela[ i ] == licz );
P-122473
darko202
» 2014-12-07 16:19:51
podejrzana wydaje mi się funkcja  spr bo zwracasz true tylko jak liczba zgadza się z wcześniej wylosowaną
1.
C/C++
int i = 0;
do
{
    if( tabela[ i ] == licz ); // podejrzany ;
   
    return true;
    i++;
} while( i < ile );

2.
nieznane jest mi działanie
 if( tabela[ i ] == licz );  // podejrzany niepotrzebny ";"
 
3.
oraz w main
C/C++
if( spr( tab, i, liczba ) == false );

{
    tab[ i ] = liczba;
    i++;
} //if
iteracja tylko wtedy gdy zachodzi spr( tab, i, liczba ) == false

4.
 tu tez dziwny ";"
if( spr( tab, i, liczba ) == false );

nie mogę teraz sprawdzić Twojego kodu w kompilatorze więc mogę się mylić :)
P-122474
« 1 »
  Strona 1 z 1