Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstdarg>
  3.  
  4. double average_function(const int num_elements, ...)
  5. {
  6. va_list elements;
  7. double sum = 0.0;
  8.  
  9. va_start(elements, num_elements);
  10. for(int i = 0; i < num_elements; ++i) {
  11. sum += va_arg(elements, double);
  12. }
  13. va_end(elements);
  14. return sum / num_elements;
  15. }
  16.  
  17. int main( int argc, char ** argv ) {
  18.  
  19. printf("Average: %lf", average_function(5, 25.0, 35.7, 50.1, 127.6, 75.0));
  20. return 0;
  21.  
  22. }
  23.  
  24. #include <initializer_list>
  25. #include <numeric>
  26. #include <iostream>
  27.  
  28. double average(std::initializer_list<double> input) {
  29. double sum = std::accumulate(input.begin(), input.end(), 0.0);
  30. return sum / input.size();
  31. }
  32.  
  33. int main() {
  34. std::cout << "Average: " << average({1, 2, 3, 4, 5, 6, 7, 8});
  35. }
  36.  
  37. template<typename... Args>
  38. double average(Args... args)
  39. {
  40. return average({args...});
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement