求平均数:
#include<stdio.h>
#include<stdarg.h>
int average(int val,...)
{
int sum=0;
int i=0;
va_list arg;
va_start(arg,val);
for(i=0;i<val;i++)
{
sum+=va_arg(arg,int);
}
va_end(arg);
return sum/val;
}
int main()
{
int ret=0;
ret=average(4,1,2,3,10);
printf("%d\n",ret);
return 0;
}
求最大的数:
#include<stdio.h>
#include<stdarg.h>
int find_max(int val,...)
{
int max=0;
int i=0;
int num=0;
va_list arg;
va_start(arg,val);
max=va_arg(arg,int);
for(i=0;i<val-1;i++)
{
num=va_arg(arg,int);
if(max<num)
max=num;
}
va_end(arg);
return max;
}
int main()
{
int ret;
ret=find_max(4,5,6,7,8);
printf("%d\n",ret);
}
实现print函数:
#include<stdio.h>
#include<stdarg.h>
#include<string.h>
void print(char* val,...)
{
int i;
int len=0;
va_list arg;
va_start(arg,val);
while(*val)
{
switch(*val)
{
case 's':
{
char *temp=va_arg(arg,char *);
len=strlen(temp);
for(i=0;i<len;i++)
{
putchar(*temp);
temp++;
}
break;
}
case 'c':
putchar(va_arg(arg,char));
break;
case '\n':
putchar('\n');
break;
case'\t':
putchar('\t');
break;
defult:
break;
}
val++;
}
va_end(arg);
}
int main()
{
print("c\ts\n",'b',"it");
return 0;
}