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

Lekcja 18 Tablice

Ostatnio zmodyfikowano 2015-07-28 15:33
Autor Wiadomość
Programista1221
Temat założony przez niniejszego użytkownika
Lekcja 18 Tablice
» 2015-07-28 00:16:46
Mam problem z programem bo zamiast sumy otrzymuje ostatnią wylosowaną liczbę
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    int liczba[ 999 ], nr, a, suma;
    a = 0;
    srand( time( NULL ) );
    for( nr = 1; nr < 999; nr++ )
    {
        a++;
        liczba[ a ] =( rand() % 6 ) + 4;
        cout << "Liczba" << nr << "=" << liczba[ a ] << endl;
    }
    for( a = 0; a < 999; a++ )
    {
        suma = liczba[ a ] + 0;
    }
    cout << "Suma tych liczb =" << suma << endl;
    return 0;
}
P-135323
Lora
» 2015-07-28 00:44:01
Bo zastępujesz sumę wylosowanymi liczbami, zamiast dodawać je do niej. Zamień
suma = liczba[ a ] + 0
 na
suma += liczba[ a ]
 i wyzeruj zmienną suma przy jej deklaracji. I w pierwszej pętli zamień warunek końca:
for( nr = 1; nr <= 999; nr++ )
.
P-135324
Programista1221
Temat założony przez niniejszego użytkownika
» 2015-07-28 13:47:45
dalej jest problem z sumą teraz kosmiczne wyniki się pojawiają
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    int liczba[ 999 ], nr, a, suma;
    a = 0;
    suma = 0;
    srand( time( NULL ) );
    for( nr = 1; nr <= 999; nr++ )
    {
        a++;
        liczba[ a ] =( rand() % 6 ) + 4;
        cout << "Liczba" << nr << "=" << liczba[ a ] << endl;
    }
    for( a = 0; a < 999; a++ )
    {
        suma += liczba[ a ];
    }
    cout << "Suma tych liczb =" << suma << endl;
    return 0;
}
P-135338
BadBullPL
» 2015-07-28 14:24:42
Zrób to w jednej pętli:
C/C++
for( int nr = 0; nr < 999; nr++ )
{
    liczba[ nr ] =( rand() % 7 ) + 4;
    suma += liczba[ nr ];
    cout << "Liczba" << nr + 1 << "=" << liczba[ nr ] << endl;
}
P-135340
pekfos
» 2015-07-28 14:39:46
C/C++
for( nr = 1; nr <= 999; nr++ )
{
    a++;
    liczba[ a ] =( rand() % 6 ) + 4;
    cout << "Liczba" << nr << "=" << liczba[ a ] << endl;
}
for( a = 0; a < 999; a++ )
{
    suma += liczba[ a ];
}
Dlaczego raz iterujesz po tablicy w jeden sposób, a potem używasz innego? Pierwsza pętla jest błędna, przerób ją tak, jak masz drugą.

Zrób to w jednej pętli:
Nie na temat.
Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy.
P-135344
Lora
» 2015-07-28 15:33:35
C/C++
for( nr = 1; nr <= 999; nr++ )
{
   
    liczba[ a ] =( rand() % 6 ) + 4;
    cout << "Liczba" << nr << "=" << liczba[ a ] << endl;
    a++;
}
a++ powinno być na końcu pętli, nie zauważyłem tego wcześniej. Albo zamiast a używaj nr-1.
P-135345
« 1 »
  Strona 1 z 1