c++ variable argument

C++
#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
*/
Source

Also in C++: