1.题目
使用可变参数,实现函数,求函数参数的平均值。
2.程序代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <windows.h>
#include <stdarg.h>
int average(int n, ...)
{
va_list arg;//声明va_list类型的变量arg
int i = 0;
int sum = 0;
va_start(arg, n);//初始化,第一个参数是va_list变量名,第二个参数是省略号
//前最后一个有名字的参数,arg变量指向可变参数的第一个参数
for (i = 0; i < n; i++)
{
sum += va_arg(arg, int);//访问参数,第一个为参数是va_list变量,
//第二个参数是参数列表中下一个参数的类型
//va_arg返回这个参数的值,并使va_arg指向下一个可变参数
}
return sum / n;
va_end(arg);//访问完毕后调用,把arg初始化为NULL
}
int main()
{
int a = 3;
int b = 6;
int c = 9;
printf("average(a, b, c) is %d\n", average(3, a, b, c));
system("pause");
return 0;
}