1.使用可变参数,实现函数,求函数参数的平均值。
#include<stdio.h>
#include<stdlib.h>
#include <stdarg.h>
int average(int num, ...)//第一个参数传的是参数的个数,后面三个点代表可变参数列表
{
int sum = 0;
va_list arg; //定义一个va_list类型的变量
va_start(arg, num); //宏 va_start
for (int i = 0; i < num; i++)
{
sum += va_arg(arg, int); //宏 va_arg
}
va_end(arg); //宏 va_end
return sum / num;
}
int main()
{
int aver = 0;
aver = average(5, 2, 4, 6, 8, 10); //第一参数为个数,之后的数为被平均的数
printf("%d\n", aver);
system("pause");
return 0;
}
2.使用可变参数,实现函数,求函数参数的最大值。
#include<stdio.h>
#include<stdlib.h>
#include <stdarg.h>
int Max(int num, ...)
{
int max = 0;
int i = 0;
va_list arg;
va_start(arg, num);
for (int i = 0; i < num; i++)
{
int val = va_arg(arg, int);
if (val > max)
{
max = val;
}
}
va_end(arg);
return max;
}
int main()
{
int ret = 0;
ret = Max(5, 2, 4, 6, 8, 10);
printf("%d\n", ret);
system("pause");
return 0;
}