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

Problem z sumowaniem elementów w tablicy rozdział 18.

Ostatnio zmodyfikowano 2014-08-15 11:42
Autor Wiadomość
wigi97
Temat założony przez niniejszego użytkownika
Problem z sumowaniem elementów w tablicy rozdział 18.
» 2014-08-03 15:36:57
Witam, jak napisałem w tytule, mam problem z ostatnim elementem zadania. Program sumuje mi to w dziwny sposób. Proszę nie przejmować się małą skalą, w kontekście liczb, taką łatwiej jest kontrolować. Z góry dziękuję za wszelkie porady i pomoc.
C/C++
int main()
{
    srand( time( NULL ) );
    int losowaneLiczby[ 5 ];
    int a, b, c, licznik, suma;
    licznik = 0;
    do
    {
        losowaneLiczby[ licznik ] =( rand() % 7 ) + 4;
        licznik++;
    } while( licznik < 5 );
   
    cout << "Wylosowane liczby to ";
    licznik = 0;
    do
    {
        cout << losowaneLiczby[ licznik ] << ", ";
        licznik++;
    } while( licznik < 5 );
   
    cout << "Suma liczb to ";
    licznik = 0;
    do
    {
        a = losowaneLiczby[ licznik ];
        licznik++;
        suma = a + losowaneLiczby[ licznik ];
    } while( licznik < 5 );
   
    cout << suma << endl;
    system( "pause" );
    return 0;
}
P-114994
pekfos
» 2014-08-03 15:38:55
Po co tak kombinować..?
C/C++
int suma = 0;
//..
suma += tablica[ i ];
P-114995
1aam2am1
» 2014-08-03 17:10:34
Nie zerujesz sumy. Są w niej losowe wartości
P-114999
Mateus.
» 2014-08-03 21:21:56
A po co ma ją zerować jak wpisuje do niej wartość?
Edit: Oczywiście w jego funkcji tak jest, ale w poprawnym rozwiązaniu zerowanie jest raczej konieczne.
P-115015
1aam2am1
» 2014-08-03 21:30:37
Ma tak:
C/C++
cout << "Suma liczb to ";
licznik = 0;
do
{
    a = losowaneLiczby[ licznik ]; //1
    licznik++; //2
    suma = a + losowaneLiczby[ licznik ]; //3
} while( licznik < 5 );

licznik 0

1 a = losowaneliczby[0]
2 licznik++
3 suma to a i losowaneliczby[1]

licznik 1

1 a = losowaneliczby[1]
2 licznik++
3 suma to a i losowaneliczby[2]

Czyli za każdym obiegiem funkcji dodajesz element pierwszy i następny a powinieneś dodać wszystkie elementy. A i wychodzisz w ostatnim obiegu za zakres tablicy.

Powinno być:
C/C++
licznik = 0;
suma = 0; //zeruje sume
do
{
    suma += losowaneLiczby[ licznik ]; //dodaje wartos poprzednią i wylosowanej liczby
    licznik++; //podnosze licznik o 1
} while( licznik < 5 );

P-115018
wigi97
Temat założony przez niniejszego użytkownika
» 2014-08-15 11:42:22
Dziękuję za dogłębne wytłumaczenie mojego błędu i wszelką pomoc.
P-115488
« 1 »
  Strona 1 z 1