funkcja problem

0

Witam mam następujące zadanie:
Funkcja nic nie zwracająca, dla której wykonanie poniższego kodu:
int a,b,c,d,e;
funkcja( 3 , a , 1 , 1 ,1 );
funkcja( 3 , b , 1 , 2 ,3 );
funkcja( 5 , c , 1 , 1 ,1 , 1, 1 );
funkcja( 7 , d , 1 , 1 ,1 , 1, 1 , 1 , 1 );
funkcja( 7 , e , 1 , 2 ,3 , 4, 5 , 6 , 7 );
cout << a << " , " << b << " , " << c << " , " << d << " , " << e;
spowoduje wypisanie na ekran liczb : 3, 6, 5, 7, 28.

Z tego co rozumiem funkcja ta ma wstawiać pod a,b,c itd. sumę argumentów za tymi literami, mam tylko problem z tym że ilość argumentów może być różna raz jest ich 5, 3 a raz 7 da się to jakoś sensownie zapisać w jednej funkcji czy muszę robić po 1 dla każdej ilości argumentów, a może źle to rozumiem w takim wypadku prosiłbym o wyjaśnienie.

0

W sumie jakbys podawal jako 2 argument wskaznik lub referencje to bylo by ok, bo takto nie zmienisz takimi wywolaniami wartosci zmiennych a, b, c, d, e.

W kazdym razie moglo by to wygladac tak:

void funkcja(int n, int *b, ...)
{
	int *ptr = (int*)&b + 1;

	*b = 0;
	while(n--)
		*b += *ptr++;
}

ale lepiej przeczytaj to http://pl.wikibooks.org/wiki/C/Funkcje#Zmienna_liczba_parametr.C3.B3w

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