| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 881 人关注过本帖
标题:关于 参数个数可变的函数 的问题(问题已解决)
只看楼主 加入收藏
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
结帖率:92.86%
收藏
 问题点数:0 回复次数:3 
关于 参数个数可变的函数 的问题(问题已解决)
#include<stdio.h>
#include<stdarg.h>
int main()
{
    double average(double,double,...);
    double result=0;
    result=average(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,0.0);
    printf("%lf\n",result);
}
double average(double v1,double v2,...)
{
    va_list parg;
    double sum=v1+v2;
    double num=2;
    double this=0.0;
   
    va_start(parg,v2);
    while(1)
    {
        this=va_arg(parg,double);
        if(this==0.0)
            break;
        sum+=this;
        num++;
    }
   
    va_end(parg);
   
    return sum/num;
}

[此贴子已经被作者于2017-1-19 12:15编辑过]

搜索更多相关主题的帖子: average include double result 
2017-01-19 12:06
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
用数组试试~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-19 12:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
代码抄别人的吧
result=average(1,2,3,4,5,6,7,8);
result=average(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,0.0);
2017-01-19 12:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
<stdarg.h> 头文件定义了一些宏,当函数参数未知时去获取函数的参数
变量:
typedef va_list
宏:
va_start()
va_arg()
va_end()
变量和定义
va_list类型通过stdarg宏定义来访问一个函数的参数表,参数列表的末尾会用省略号省略

声明:void va_start(va_list ap, last_arg);
用va_arg和va_end宏初始化参数ap,last_arg是传给函数的固定参数的最后一个,省略号之前的那个参数 注意va_start必须在使用va_arg和va_end之前调用

声明:type va_arg(va_list ap, type);
用type类型扩展到参数表的下个参数
注意ap必须用va_start初始化,如果没有下一个参数,结果会是undefined

声明:void va_end(va_list ap); 允许一个有参数表(使用va_start宏)的函数返回,如果返回之前没有调用va_end,结果会是undefined。参数变量列表可能不再使用(在没调用va_start的情况下调用va_end)
2017-01-19 14:45
快速回复:关于 参数个数可变的函数 的问题(问题已解决)
数据加载中...
 
   



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

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