33 lines
699 B
C
33 lines
699 B
C
|
/**
|
||
|
* Vararg Funktion schreiben
|
||
|
*
|
||
|
* Schreiben Sie ein Funktion `sum_numbers`, der
|
||
|
* man eine beliebige Anzahl von Integer-Werten übergeben
|
||
|
* kann und die dann die Summe der Werte zurückgibt.
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
#include <stdarg.h>
|
||
|
#include <assert.h>
|
||
|
|
||
|
int sum_numbers(int count, ...) {
|
||
|
int result = 0;
|
||
|
va_list args;
|
||
|
va_start(args, count);
|
||
|
|
||
|
for (int i = 0; i < count; i++) {
|
||
|
result += va_arg(args, int);
|
||
|
}
|
||
|
|
||
|
va_end(args);
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
int main(int argc, char** argv) {
|
||
|
assert(sum_numbers(1, 1) == 1);
|
||
|
assert(sum_numbers(2, 1, 2) == 3);
|
||
|
assert(sum_numbers(3, 1, 2, 3) == 6);
|
||
|
assert(sum_numbers(4, 1, 2, 3, 10) == 16);
|
||
|
return 0;
|
||
|
}
|