求最大值:
#include<stdio.h>
#include<Windows.h>
#include<stdarg.h>
#pragma warning(disable:4996)
int Max(int n, ...)
{
va_list arg;
int val = 0;
int max = 0;
int i = 0;
va_start(arg, n);
for (i = 0; i < n; i++)
{
val = va_arg(arg, int);
if (val > max)
max = val;
}
va_end(arg);
return max;
}
int main()
{
int ret = Max(5, 78, 45, 96, 52, 24);
printf("%d\n", ret);
system("pause");
return 0;
}
求平均值:
#include<stdio.h>
#include<Windows.h>
#include<stdarg.h>
#pragma warning(disable:4996)
int average(int n, ...)
{
va_list arg; //声明一个va_list类型的变量arg
int i = 0;
int sum = 0;
va_start(arg,n); //va_start 初始化arg
for (i = 0; i < n; i++)
{
sum += va_arg(arg, int); //va_arg访问arg中变量,int 为列表中下一个参数类型
}
va_end(arg); //访问完毕调用va_end函数结束
return sum / n;
}
int main()
{
int a = 5;
int b = 6;
int c = 7;
int ret = average(3, a, b, c);
printf("%d", ret);
system("pause");
return 0;
}