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

[C++] Błędne sumowanie tablicy losowych liczb

Ostatnio zmodyfikowano 2012-11-11 17:08
Autor Wiadomość
Najsu
Temat założony przez niniejszego użytkownika
[C++] Błędne sumowanie tablicy losowych liczb
» 2012-11-11 16:07:13
Witam ponownie.
Znów zwracam się do Was z prośbą o pomoc, gdyż kombinuję już dosyć długo i nie daję rady.


Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. 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.

Mój problem polega na tym, że nie mogę zsumować wszystkich liczb. Poza tym wszystko ładnie mi losuje jak trzeba, lecz suma jest zbyt wielka. O to mój kod (trochę go uprościłem, losuje 10 liczb, a nie 999).

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
    srand( time( NULL ) );
    int los[ 11 ];
    int licznik;;
    int nr;
    int suma;
    nr = 0;
    licznik = 1;
   
    do
    {
        nr++;
        std::cout << "#" << nr << " --- ";
        los[ licznik ] =(( rand() % 7 ) + 4 );
        std::cout << los[ licznik ] << std::endl;
        licznik++;
    } while( licznik < 11 );
   
    licznik = 1;
   
    do
    {
        suma += los[ licznik ];
        licznik++;
    } while( licznik < 11 );
   
    std::cout << "" << std::endl;
    std::cout << "Suma tych liczb jest rowna: " << suma << std::endl;
    return 0;
}

Nie wiem co jest nie tak.
Z góry dziękuje za pomoc, pozdrawiam.
P-68996
DejaVu
» 2012-11-11 16:54:45
C/C++
int suma;
Doczytaj w kursie jaką wartość początkową będzie miała ta zmienna (» Kurs C++ » Poziom 1Pojęcie zmiennej i podstawowe typy danych lekcja).
P-69003
Najsu
Temat założony przez niniejszego użytkownika
» 2012-11-11 17:08:10
int suma = 0;
O to rozwiązanie mojego problemu, dziękuje Ci bardzo za pomoc. Znowu wkradł się mały błąd, nie nadałem tej zmiennej początkowej wartości. Następnym razem gdy znowu coś pójdzie nie tak postaram się szukać w te strony. Dzięki jeszcze raz.

@edit Gotowy program wraz z małym dodatkiem wygląda tak, jakby komuś miało się przydać:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
    srand( time( NULL ) );
    int los[ 1000 ];
    int licznik = 1;
    int nr = 0;
    int suma = 0;
   
    do
    {
        nr++;
        std::cout << "#" << nr << " --- ";
        los[ licznik ] =(( rand() % 7 ) + 4 );
        std::cout << los[ licznik ] << std::endl;
        licznik++;
    } while( licznik < 1000 );
   
    licznik = 1;
   
    do
    {
        suma += los[ licznik ];
        licznik++;
    } while( licznik < 1000 );
   
    std::cout << "" << std::endl;
    std::cout << "Suma tych liczb jest rowna: " << suma << std::endl;
    return 0;
}
P-69005
« 1 »
  Strona 1 z 1