您的位置:首页 > 其它

对可变参数列表的使用

2015-09-08 18:27 274 查看

求平均数:

#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: