| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:处理参数个数不定的函数
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:1 
处理参数个数不定的函数
void ShowResultf(double a,double b,int num4)
{
for(int i=0;i<num4;i++)
{
printf("%f\t%f\n",a,b) ;
}
}
void ShowResultf(double a,int num4)
{
for(int i=0;i<num4;i++)
{
printf("%f\n",a) ;
}
}
如上面,希望把传入的参数值在屏幕上显示出来,但是事先不知道参数的个数,怎么处理?我记得C中可以用一个函数处理这个情况的。现在对于这两种情况使用了两个不同的函数
搜索更多相关主题的帖子: 函数 参数 int double void 
2007-11-17 15:34
windlzf
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-8-7
收藏
得分:0 
C/C++程序员实用大全 上的例子,你看看改了就可以了
入门:
#include <stdio.h>
#include <stdarg.h>
int add_values(int value,...)
{
    va_list argument_ptr;
    int result=0;
    if(value!=0)
    {
        result_=value;
        va_start(argument_ptr,value);
        while((value=va_arg(argument_ptr,int))!=0)
            result+=value;
        va_end(argument_ptr);
    }
    return(result);
}
void main(void)
{
    printf("Sum of 3 is %d\n",add_values(3,0));
    printf("Sum of 3+5+8 is %d\n",add_values(3,5,8,0));
}

高阶:
#include <stdio.h>
#include <stdarg.h>
double add_values(char *str,...)
{
    va_list marker;
    double result=0.0;
    va_start(marker,str);
    while(*str)
    {
        if(*str=='%')
        {
            switch(*(++str))
            {
                case 'd':result+=va_arg(marker,int);break;
                case 'f':result+=va_arg(marker,double);break;
            }
        }
        str++;
    }
    va_end(marker);
    return(result);
}
void main(void)
{
    double result;
    printf("Result %f\n",add_values("%f%d%f%d",1.1,1,2.2,3));
}
2007-11-22 14:52
快速回复:处理参数个数不定的函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved