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

Problem z sprawdzeniem najwyższej liczby

Ostatnio zmodyfikowano 2015-07-21 23:29
Autor Wiadomość
kapelusznik
Temat założony przez niniejszego użytkownika
Problem z sprawdzeniem najwyższej liczby
» 2015-07-21 22:59:01
Witam mógłby mi ktoś wytłumaczyć dlaczego zdarza się przy kompilacji tego programu:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int wypiszMaxAndMin( int iMax, int iMin )
{
    cout << iMax << "\t" << iMin << endl;
}

int sprawdziMax( int losowe[], int & iMax )
{
    int i = 0;
    iMax = losowe[ i ];
    do
    {
        if( losowe[ i ] > iMax )
             iMax = losowe[ i ];
       
        i++;
    } while( i < 5 );
   
}

int sprawdziMin( int losowe[], int & iMin )
{
    int i = 0;
    iMin = losowe[ i ];
    do
    {
        if( losowe[ i ] < iMin )
             iMin = losowe[ i ];
       
        i++;
    } while( i < 5 );
   
}

void wypisz( int losowe[] )
{
    for( int i = 0; i < 5; i++ )
    {
        cout << losowe[ i ] << endl;
    }
    cout << "\n" << endl;
}

void wypiszOdwrotnie( int losowe[] )
{
    for( int i = 4; i >= 0; i-- )
    {
        cout << losowe[ i ] << endl;
    }
   
    cout << "\n" << endl;
}

int czyByla( int losowe[], int liczba, int wylosowane )
{
    if( wylosowane == 0 )
         return false;
   
    int i = 0;
    do
    {
        if( losowe[ i ] == liczba )
             return true;
       
        i++;
    } while( i < wylosowane );
   
    return false;
}

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

int main()
{
    int losowe[ 10 ];
    int wylosowane = 0;
   
    srand( time( NULL ) );
   
    do
    {
        int liczba = wylosuj();
        if( czyByla( losowe, liczba, wylosowane ) == false )
        {
            losowe[ wylosowane ] = liczba;
            wylosowane++;
        }
    } while( wylosowane < 5 );
   
    wypisz( losowe );
    wypiszOdwrotnie( losowe );
   
    int iMax, iMin;
   
    iMax = sprawdziMax( losowe, iMax );
    iMin = sprawdziMin( losowe, iMin );
    wypiszMaxAndMin( iMax, iMin );
   
   
   
    return 0;
}

zdarza się, że wyskakują mi jakieś wielkie liczby podstawione za iMax albo iMini? Czy wychodzę tutaj poza tablicę? Czy problem leży gdzieś indziej?
P-135058
pekfos
» 2015-07-21 23:07:45
C/C++
iMax = sprawdziMax( losowe, iMax );
iMin = sprawdziMin( losowe, iMin );
Próbujesz modyfikować zmienną na 2 różne sposoby. Ostatnie jest przypisanie wyniku funkcji, a ty nic nie zwracasz pomimo tego, że musisz.
P-135059
kapelusznik
Temat założony przez niniejszego użytkownika
» 2015-07-21 23:29:38
Okej to właśnie to wywoływało błąd, teraz jest wszystko ok. Dzięki za pomoc.
P-135063
« 1 »
  Strona 1 z 1