Przekazywanie tablic do funkcji

0

Witam,

Chcę stworzyć program, który wypisuje 999 liczb z przedziału 4- 10. Chcę stworzyć 3 różne funkcje: 1 funkcja losuje liczby, 2 funkcja wypisuje liczby a 3 funkcja je sumuje. Podczas gdy używam funkcji void pokazuje mi się błąd:"funkcja void nie jest ignorowana tak jak powinna być", idąc tym tropem zmieniłem funkcję "obliczSume" z void na int i teraz program nie sumuje wszystkich wartości, zamiast tego wyświetla liczbę 0. Bardzo Was proszę o nakierowanie na błąd, męczę się z tym już 3 dzień. Z góry dzięki.

# kod // Tablica
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>

using namespace std;

void wylosujLiczby (int tablica[], int ile_liczb, int a, int b)
{
    a=a;
    b-=3;
    int licznik=0;
    for(licznik=0; licznik<ile_liczb; licznik++)
    {
        tablica[licznik]=(rand()%b)+a;
    }
}
void wypiszLiczby (int tablica[], int ile_liczb)
{
    int licznik=0;
    for(licznik=0; licznik<ile_liczb;licznik++)
    {
        cout<<tablica[licznik]<<endl;
    }
}

int obliczSume (int tablica[], int ile_liczb)
{
    int suma=0;
    int licznik=0;
    
    for(licznik=0; licznik< ile_liczb; licznik++)
    {
      suma+=tablica[licznik];
    }
      
}

int main()
{
    srand(time(NULL));

 int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    system ("pause");
}

Pozdrawiam

3

No bo nigdzie nie masz return suma.


Swoją drogą jaki jest sens tej linii?

a=a;
0

To tak tylko dla jasności że a pozostaje bez zmian, w sumie mógłby to być komentarz :) Kod poprawiony, wszystko działa dzięki!

2

To nie dodaje żadnej jasności, tylko wręcz zaciemnia. Nawet taki komentarz byłby niepożądany. Dlaczego ktoś miałby oczekiwać, że a będzie zmieniane, że musisz potwierdzić, że jednak a nie będzie zmieniane.
Jeśli nie chcesz, by coś zostało zmienione, to deklaruj jako const.

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