Dodawanie wygenerowanych elementów tablicy

0

"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 kod:

#include <iostream>
#include <stdio.h>
#include <time.h>
#include <Windows.h>
#include <conio.h>
#include <stdlib.h>
#include <ctime>
using namespace std;
int liczba [1000];
int licznik;
int suma;
 int main()
   {

      srand (time(NULL));

      for ( licznik=0; licznik<1000; licznik++)
        {
        int losowa=(rand()%6)+4;
        liczba [licznik]=losowa;
        cout << losowa<<endl;

        }
      for (licznik=1000; licznik>0; licznik--)
       {
        liczba[licznik--]=liczba[licznik]+liczba [licznik--];
       }

     getchar();
     return 0;
}
1

Fajnie, że wstawiłeś kod. Czy chciałeś też np. zadać jakieś pytanie lub poprosić o pomoc?

0

No tak, zamuliłem troszkę. Kod zwraca jedynie "0"... I nie wiem dlaczego...

0
  for (licznik=1000; licznik>0; licznik--)
   {
    liczba[licznik--]=liczba[licznik]+liczba [licznik--];
   }

 getchar();
 return 0;
    suma = 0;
    for( licznik = 0; licznik != 1000; licznik++ )
        suma += liczba[licznik];
    cout << suma << endl;

Nic dziwnego, że wynik programu to 0, skoro tak jest napisane (return 0;), natomiast to, co wypisuje na ekranie, to też zero?

0

Poza tym ten fragment int losowa=(rand()%6)+4; losuje od 4 do 9, nie do 10...

I w c++ lepiej inaczej losować: https://dsp.krzaq.cc/post/180/nie-uzywaj-rand-cxx-ma-random/

0
      for (licznik=1000; licznik>0; licznik--)
       {
        liczba[licznik--]=liczba[licznik]+liczba [licznik--];
       }

To jest UB, po co zmieniasz wartość licznik kilka razy w wyrażeniu?

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