c++ variable arguments
#include <iostream>
#include <cstdarg>
using namespace std;
double average(int num,...) {
va_list valist; // A place to store the list of arguments (valist)
double sum = 0.0;
int i;
va_start(valist, num); // Initialize valist for num number of arguments
for (i = 0; i < num; i++) { // Access all the arguments assigned to valist
sum += va_arg(valist, int);
}
va_end(valist); // Clean memory reserved for valist
return sum/num;
}
int main() {
cout << "[Average 3 numbers: 44,55,66] -> " << average(3, 44,55,66) << endl;
cout << "[Average 2 numbers: 10,11] -> " << average(2, 10,11) << endl;
cout << "[Average 1 number: 18] -> " << average(1, 18) << endl;
}
/*
NOTE: You will need to use the following 'data_types' within the function
va_list : A place to store the list of arguments (valist)
va_start : Initialize valist for num number of arguments
va_arg : Access all the arguments assigned to valist
va_end : Clean memory reserved for valist
*/