ВУЗ:
Составители:
Рубрика:
45
обработки списка аргументов переменной длины функции av. Функция
начинается вызовом макроса va_start, инициализирующего объект a. Макрос
получает два аргумента: объект a и идентификатор самого правого параметра в
списке перед многоточием. В данном случае это i (va_start нужен идентификатор
i для определения того, где начинается список аргументов переменной длины).
Затем функция av
последовательно складывает аргументы из списка в
переменной t. Прибавляемое к t значение извлекается из списка аргументов
вызовом макроса va_arg. Макрос va_arg получает два аргумента: объект a и тип
значения, ожидаемого в списке аргументов функции. В данном случае это double.
Макрос возвращает значение аргумента. Функция av вызывает макрос va_end с
объектом a
для упрощения нормального возврата из av в main. И наконец,
вычисляется среднее и его значение возвращается в main.
___________________________________
Результаты выполнения программы
37,5 22.5 1.7 10.2
30.000
20.567
17.975
Упражнение 22.
Написать программу для ввода и сохранения информации о геометрических
фигурах (квадратах, прямоугольниках и треугольниках). Информация
накапливается в символьной строке, в которую последовательно вносят записи
типа
“треугольник 3 4 5;”.
Каждая фигура определяется:
- числовым признаком типа геометрической фигуры (соответственно 1, 2, 3),
- длинами сторон фигуры (одно, два или три целых числа).
Данные о фигуре вводятся в диалоге: