c-uebungen/Assignment_016/solution/vararg_sum.c

33 lines
699 B
C
Raw Permalink Normal View History

2023-05-21 21:10:46 +02:00
/**
* 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;
}