sumowanie n liczb za pomocą tablic w c++

0

Witam, dopiero zaczynam naukę z c++.
Mam problem z napisaniem funkcji która sumowała by n (np. 100) losowo wybranych liczb. Starałem się coś wykombinować ale nie mam zielonego pojęcia jak się do tego zabrać. Proszę o pomoc

0
int suma = 0;
for(int i = 0; i < 100; i++)
{
    int los = rand() % 100 + 1;
    suma += los;
}
0

Serdecznie dziękuje

0

Należy dodać, że na początku programu musisz dopisać linijkę srand(time(0));, która ustawi ziarno pseudolosowości.

0

plus dołączyć bibliotekę #include <time.h> i zmienić temat, bo nie użyłem tutaj w ogóle tablic tak jak było w temacie

0

... nie wspominając już o tym że użyłeś do sumowania operatora += zamiast tablic jak jest zasugerowane w temacie.

0
#include <time.h>
//...
srand(time(0));
//...
int tab[10];
for(int i = 0; i < 10; i++)
{
    int los = rand() % 100 + 1;
    tab[i] = los;
}

for(int i = 1; i < 10; i++) // zaczynamy od drugiego argumentu bo suma bedzie sie znajdowala w pierwszym (bo tak to sobie wymyslilem ;]
    tab[0] += tab[i]
//...
0

Można by też wykorzystać ideę PD i zrobić to jakoś tak:

 #include <iostream>

using namespace std;

int main()
{
    srand(time(0));
    int n, *tab;
    cout << "Podaj rozmiar tablicy: " << endl;
    cin >> n;
    tab = new int[n];
    for(int i=0; i<n; i++)
    {
        tab[i] = rand() % 100 + 1;
        cout << i+1 << " wylosowana liczba to: " << tab[i] << endl;
    }
    for(int i=1; i<n; i++)
        tab[i]+=tab[i-1];
    cout << "Suma wylosowanych liczb to: " << tab[n-1];
    return 0;
}

Wydaje mi się, że includowanie biblioteki time.h nie jest potrzebne, przynajmniej pisząc program w code::blocks i kompilując używając GCC wszystko ładnie przeszło.

0

Zapomniałem o zwolnieniu pamięci. Przed return 0 obowiązkowo delete [] tab :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1