JewishCat

1.7

Jan 14th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <cstdarg>
  4. #include <stdarg.h>
  5. using namespace std;
  6. double sred_znach(char *format, ...) //Функция sred_znach с произвольным числом параметров
  7. {
  8.  
  9.     int wel;
  10.     double drob;
  11.     int i = 0;
  12.     double i_max = 0;
  13.  
  14.     va_list ap; //Указатель на список параметров
  15.     va_start(ap, format); //Настроились на список параметров
  16.     for (char *p = format; *p; p++) //
  17.     {
  18.         if (*p == '%') //Если встретится символ %
  19.         {
  20.             switch (*++p) //То анализируем следующий за этим симолом символ
  21.             {
  22.             case 'd':  wel = va_arg(ap, int); //Если это символ d, то значит параметр int
  23.                 i_max += wel; i++ ; break;
  24.             case 'f':  drob = va_arg(ap, double); //Если это символ f значит параметр double
  25.                 i_max += drob; i++; break;
  26.             default: cout << "Neverniy format vvoda" << endl;
  27.                 break;
  28.             }
  29.         }
  30.        
  31.     }
  32.     va_end(ap); //Завершаем работу с макрокомандами
  33.     return i_max / i;
  34. }
  35.  
  36. int main()
  37. {
  38.     system("CLS");
  39.     cout << sred_znach("%d%f%f%f%f%d", 8, 9.555, 2.4, 2.5, 1.7, 7);
  40.     system("PAUSE");
  41.     return 0;
  42. }
Add Comment
Please, Sign In to add comment