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

Nie wyświetla mi się żaden wynik. Zadanie z rodziału 21.

Ostatnio zmodyfikowano 2017-05-27 14:43
Autor Wiadomość
maly7
» 2017-05-20 13:45:49
Zastanów się jeszcze nad konstrukcją i nad tym co dokładnie chcesz zrobić:
C/C++
if( sprawdzanie( liczba, tg, wizz ) )
do
{
    tg[ wizz ] = liczba;
    wizz++;
} while( wizz < 5 );

Przede wszystkim brakuje klamer do instrukcji warunkowej, poza tym jeśli warunek się spełni to wszystkie elementy tg wypełni ci tą samą liczbą.


W funkcji sprawdzanie:
C/C++
if( em == liczba )
do
{
    return true;
    i++;
} while( i < ile );
Tutaj też nie ma indeksu ale pewnie znów się po prostu nie skopiował.
Strasznie bezsensowny kod (brak klamer pomijam),  jeśli spełni się warunek to funkcja zwróci true i się zakończy wykonywać, więc po co tam jakieś do...while?
Usiądź do tego i poważnie przeanalizuj cały swój kod :D
P-161339
karambaHZP
» 2017-05-20 15:41:53
W kompilatorze mam ten indeks, nie skopiował się.
Skopiował się, tylko nie czytałeś » Porady dla użytkowników cpp0x.plZakładanie tematów na forum zalecenie

Debugger nic nie znajduje.
A co ma ci pokazać? Masz za jego pomocą sprawdzić, dlaczego program działa tak jak działa,
a nie jak tego chciałeś.
P-161341
tgOGemD12
Temat założony przez niniejszego użytkownika
» 2017-05-27 10:46:49
Liczby już się nie powtarzają tylko od czasu do czasu liczba numer 5 nie jest z przedziału od 1 do 10, poproszęo wskazówkę dlaczego tak się dzieje.
Tak wygląda kod :

 
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int lottery()
{
    return( rand() % 10 ) + 1;
}

bool check( int kh, int em[], int gg )
{
    if( gg <= 0 )
         return false;
   
    for( int i = 0; i < gg; i++ )
    {
        if( em[ i ] == kh )
             return true;
       
    }
    return false;
}

int main()
{
    srand( time( NULL ) );
   
    int wizz = 0;
    int tg[ 5 ];
   
    for( int i = 0; i < 5; i++ )
    {
        int taylor = lottery();
       
        if( check( taylor, tg, wizz ) == false )
        {
            tg[ wizz ] = taylor;
            wizz++;
        }
    }
   
   
    for( int i = 0; i < 5; i++ )
    {
        cout << " Number " << i + 1 << " is: " << tg[ i ] << "\n";
    }
   
    return 0;
}

P-161653
karambaHZP
» 2017-05-27 11:41:51
P-161655
karambaHZP
» 2017-05-27 14:27:09
Jak nazywać zmienne?

Ta pętla
C/C++
for( int i = 0; i < 5; i++ )
{
    int taylor = lottery();
   
    if( check( taylor, tg, wizz ) == false )
    {
        tg[ wizz ] = taylor;
        wizz++;
    }
}
jest sprawcą całego zamieszania. Wykonuje się tylko pięć razy, niezależnie czy wystąpi powtórzenie losowania,
dlatego ostatnie miejsca w tablicy mogą być niezapisane.
Ja bym zrobił tak:
C/C++
constexpr int size = 5;
//...
while( wizz < size ) {
    int taylor = lottery();
   
    if( check( taylor, tg, wizz ) == false )
    {
        tg[ wizz ] = taylor;
        ++wizz;
    }
}
P-161662
tgOGemD12
Temat założony przez niniejszego użytkownika
» 2017-05-27 14:43:52
Dzięki bardzo za wskazówki te dotyczące kodu jak i te dotyczące wypowiadania się na forum ! :) Temat zamykam i zabieram się za nastepne zadania, do usłyszenia ;)
P-161664
1 « 2 »
Poprzednia strona Strona 2 z 2