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

Problem z zadaniem: Przekazywanie tablic jednowymiarowych do funkcji (poziom 2, rozdział 19.)

Ostatnio zmodyfikowano 2013-12-30 08:12
Autor Wiadomość
astral55
Temat założony przez niniejszego użytkownika
Problem z zadaniem: Przekazywanie tablic jednowymiarowych do funkcji (poziom 2, rozdział 19.)
» 2013-12-30 07:46:16
Witam, mam problem z poprawnym działaniem programu z zadania domowego: » Kurs C++ » Poziom 2Przekazywanie tablic jednowymiarowych do funkcji lekcja
Mianowicie mój kod wygląda tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosujLiczby( int t[], int ilosc, int przedziala, int przedzialz )
{
    srand( time( NULL ) );
    int licznik = 0;
    do
    {
        t[ licznik ] =(( rand() %( przedzialz - przedziala + 1 ) ) + przedziala );
        licznik++;
    } while( licznik < ilosc );
   
}
int wypiszLiczby( int x[], int ilosc2 )
{
    int licznik = 0;
    do
    {
        cout << x[ licznik ] << " ";
        licznik++;
    } while( licznik < ilosc2 );
   
}
int obliczSume( int z[], int ilosc3 )
{
    int licznik;
    int suma = 0;
    do
    {
        suma = suma + z[ licznik ];
        licznik++;
    } while( licznik < ilosc3 );
   
    return suma;
}
int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    cout << "Suma liczb wynosi: " << iSuma << "\n";
    return 0;
}
i z niewiadomych mi, póki co, przyczyn, program w momencie wykonywania 3 funkcji (obliczSume) zawiesza się.

ALE

Najpierw spróbowałem sam dojść do tego, co dokładnie jest nie tak i postanowiłem sprawdzić w którym miejscu 3 funkcja się zawiesza, w tym celu po prostu chciałem by program wypisał tekst:
C/C++
int obliczSume( int z[], int ilosc3 )
{
    int licznik;
    int suma = 0;
    do
    {
        cout << "sprawdzam"; // dołączam tę linijkę żeby sprawdzić czy pętla w ogóle się wykonuje
        suma = suma + z[ licznik ];
        licznik++;
    } while( licznik < ilosc3 );
   
    return suma;
}
To jest jedyna zmiana w kodzie jaką robię, a po skompilowaniu program działa bez zarzutu (prócz wypisywania tekstu "sprawdzam").

Byłbym wdzięczny gdyby ktoś wyjaśnił o co tu chodzi, bo dla mnie to jest trochę dziwne.
P-100607
pekfos
» 2013-12-30 08:12:04
licznik jest niezainicjalizowany.
P-100608
« 1 »
  Strona 1 z 1