对可变参数列表的使用
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;
}
求平均数:
#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;
}
相关文章推荐
- PHP表单案例
- MAC OSX在视图port哪个程序占用,杀死进程的方法
- Oracle中substr截取字符串并用INSTR范围匹配字符串位置截取
- C++/Java中继承关系引发的调用关系详解
- 可调用对象与function
- const在函数前与函数后的区别
- Mac OS X上使用Wireshark抓包
- 最近公共祖先
- C++设计模式--单例、策略模式
- 二者必须点击一个
- 忘记Oracle密码怎么办
- php表单输入验证
- RelativeLayout中两个控件怎么居中显示
- Servlet新特性:异步处理
- android日志工具类
- Intent意图 IntentFilter介绍
- POJ1247解题报告
- Uva 12504-Updating a Dictionary(STL, map)
- leetcode Remove Nth Node From End of List java编程学习(七)
- JavaScript中函数参数的值传递和引用传递