ВУЗ:
Составители:
Рубрика:
44
Упражнение 21. Выполните программу, в ней функция av получает
произвольное количество аргументов.
#include <stdarg.h>
double av(int i,...);
//многоточие в прототипе функции означает, что функция получает переменное
число //аргументов любого типа. Многоточие всегда находится в конце списка
параметров
main()
{
double w=37.5, x=22.5, y=1.7, z=10.2;
cout<<w<<” “<<x<<” “<<y<<” “<<z<<endl;
cout<<av(2,w,x)<<endl;
cout<<av(3,w,x,y)<<endl;
cout<<av(4,w,x,y,z)<<endl;
return o;
}
double av(int i,...)
{double t=0;
int j;
va_list a;
va_start(a,i);
for(j=1; j<=i; j++)
t+=va_arg(a,double);
va_end (a);
return t/i;
}
Функция av применяет все определения и макросы
заголовочного файла stdarg.h.
Объект а, типа va_list, используется макросами va_start, va_arg, va_end для