Процедура с неопределённым числом параметров: можно ли использовать для чисел, введённых с клавиатуры? - C (СИ)
Формулировка задачи:
Процедура с неопределённым числом параметров, можно ли использовать для чисел, введённых с клавиатуры?
Она работает, но как сделать чтобы сравнивала числа, введённые с клавиатуры?
#include <stdio.h>
#include <stdarg.h>
int max(int N,...)
{
va_list ap;
int i = 0;
int max=0,k;
va_start(ap,N);
while(i<N){
k=va_arg(ap,int);
if(k>max) max=k;
i++;
}
va_end(ap);
return max;
}
int main(int argc, char *argv[])
{
printf("max(1,56,-43,32)=%d\n",max(4,1,56,-43,32));
printf("max(1,32)=%d\n",max(2,1,32));
printf("max(1,56,-43,32,44,84,-32,0,5)=%d\n",max(9,1,56,-43,32,44,84,-32,0,5));
return 0;
}Решение задачи: «Процедура с неопределённым числом параметров: можно ли использовать для чисел, введённых с клавиатуры?»
textual
Листинг программы
printf("max(1,56,-43,32)=%d\n",max(4,1,56,-43,32));
Объяснение кода листинга программы
- Вводится функция
printf, которая выводит результат на экран. - В функции
printfиспользуется форматная строка с placeholder%d, который заменяется на результат вычисления функцииmax. - В функции
printfпередается строка с аргументами функцииmax, разделенными запятыми. - Функция
maxпринимает неопределенное количество аргументов, которые могут быть числами. - В функции
maxпроисходит сравнение чисел и возвращается наибольшее число. - В качестве аргументов функции
maxиспользуются числа 1, 56, -43 и 32. - Результат вычисления функции
maxравен 56. - Результат вычисления функции
maxвыводится на экран.