Advertisement
Tucancitto

FP - lucru cu funcții cu listă variabilă de argumente

Jan 29th, 2021 (edited)
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.88 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3.  
  4. double maxim(int n, ...)
  5. {
  6.     va_list a; //folosim un tip de date din stdarg.h: va_list
  7.     double x;
  8.     double max = -1E10;
  9.  
  10.     //3 macro-uri: va_start(a, n), va_arg(a, double), va_end(a)
  11.     va_start(a, n);
  12.  
  13.     for (int i = 0; i < n; i++)
  14.     {
  15.         x = va_arg(a, double);
  16.         if (x > max)
  17.             max = x;
  18.     }
  19.  
  20.     va_end(a);
  21.  
  22.     return max;
  23. }
  24.  
  25. double medie(int n, ...)
  26. {
  27.     va_list a;
  28.     double x;
  29.     double suma = 0;
  30.  
  31.     va_start(a, n);
  32.  
  33.     for (int i = 0; i < n; i++)
  34.     {
  35.         x = va_arg(a, double);
  36.         suma += x;
  37.     }
  38.    
  39.     va_end(a);
  40.  
  41.     return suma / n;
  42. }
  43.  
  44. void main()
  45. {
  46.     printf("Maximul dintre numere este: %.2lf\n", maxim(3, 1., 2.5, 1.7));
  47.     printf("Media numerelor este: %.2lf\n", medie(3, 1., 2.5, 1.7));
  48.  
  49.     printf("Maximul dintre numere este: %.2lf\n", maxim(4, 1., 2.5, 1.7, 3.8));
  50.     printf("Media numerelor este: %.2lf\n", medie(4, 1., 2.5, 1.7, 3.8));
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement