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

zadanie 2 lekcja 21 - program przestał działać

Ostatnio zmodyfikowano 2013-09-08 17:18
Autor Wiadomość
Ven_64
Temat założony przez niniejszego użytkownika
zadanie 2 lekcja 21 - program przestał działać
» 2013-09-08 16:46:26
Jak w temacie, mój program przestaje działać, po w wprowadzeniu 10 liczb.
Proszę o szybką pomoc.
 kod:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;
bool sprawdz( int ilemamy, int sprawdzone[], int ktoranspr )
{
    int x = 0;
    do
    {
        if( ktoranspr == sprawdzone[ x ] )
             return false;
       
        x++;
    } while( x < ilemamy );
   
    return true;
}
int losuj()
{
    return( rand() % 10 ) + 0;
}
int main()
{
    srand( time( 0 ) );
    int liczby[ 10 ];
    int k = 0;
    do
    {
        cin >> liczby[ k ];
        k++;
    } while( k < 10 );
   
    int ktora[ 8 ];
    losuj();
    ktora[ 0 ] = losuj();
    int k2 = 0;
    do
    {
        int nspr = losuj();
        sprawdz( k2, ktora, nspr );
        if( sprawdz( k2, ktora, nspr ) == true );
       
        {
            k2++;
        }
       
    } while( k2 < 7 );
   
    int q = 0;
    do
    {
        cout << liczby[ ktora[ q ] ];
        q++;
    } while( q < 8 );
   
    return 0;
}
P-91706
killjoy
» 2013-09-08 17:18:01
Przypisujesz wartość tylko pierwszemu elementowi tablicy:
ktora[ 0 ] = losuj();
, reszta elementów zawiera śmieci, których wartość wychodzi poza zakres tablicy
liczby[ ktora[ q ] ]
. Przypisz wartości każdemu elementowi z osobna w tablicy
int ktora[ 8 ];
, albo zainicjalizuj ją tak
int ktora[ 8 ] = { };
, co spowoduje, że tablica będzie wypełniona zerami.

#EDIT#
Zapomniałem dopisać żebyś wyrzucił ten średnik po if'ie
C/C++
if( sprawdz( k2, ktora, nspr ) == true ); //Tego srednika nie powinno byc

{
    k2++;
}
P-91707
« 1 »
  Strona 1 z 1