Czego użyć zamiast zmiennej globalnej

0

Cześć.

mam taki prosty fragmencik mojego kodu:

using namespace std;

const short LICZBA_DNI = 7;
int goscie[LICZBA_DNI];
int dni_tygodnia[LICZBA_DNI] = { 1,2,3,4,5,6,7 };


int suma = 0;

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

	for (int i = 0; i <= 6; i++)
	{
		cout << endl << "Wprowadz liczbe gosci w dniu nr " << i + 1 << ": ";
		cin >> goscie[i];
		if (goscie[i] == 9999)
			goscie[i] = rand() % 100 + 1;
		suma += goscie[i];
	}

	return suma;


double srednia_arytmetyczna()
{
	cout << "Srednia arytmetyczna\nSrednio kazdego dnia odwiedza nas " << suma / LICZBA_DNI << " gosci." << endl;

	return 0;
}

Jak widać jest zadeklarowana zmienna int suma, która jest przetwarzana przez funkcję liczba_gosci() a potem wykorzystuje ją srednia_arytmetyczna(). Podobno lepiej żeby użyć innego sposobu niż taka zmienna globalna. Żeby funkcja srednia_arytmetyczna jakoś inaczej sobie tę sumę z funkcji liczba_gosci pobierała. Co mogę tu zmienić?

Będę wdzięczny za podpowiedzi
Pozdrawiam

3

Przekaz w argumencie input i zwroc output w wyniku.

def avg(sum, n):
    return sum / n
1
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

const short LICZBA_DNI = 7;
struct room_day_pair
{
   int day,guestcount;
};
struct hotel
{
   double sum;
   room_day_pair Pairs[LICZBA_DNI];
}; 

void input(hotel &h)
{
	
}

void calcsum(hotel &h)
{
	
}

int main()
{
	hotel h= {0,{{1},{2},{3},{4},{5},{6},{7}}};
	input(h);
	calcsum(h);
	return 0;
}

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