标题:看了好久,没发现什么问题啊,但为什么输出的结果差距这么大?
只看楼主
任重道远
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2015-9-12
结帖率:66.67%
已结贴  问题点数:20 回复次数:2 
看了好久,没发现什么问题啊,但为什么输出的结果差距这么大?
#include <stdio.h>
#include <stdarg.h>

float average(int num,...);                        

int main(void)                                           //看了好久,没发现什么问题啊,但为什么输出的结果差距这么大?
{                                                        //结果:The first average is 42.30
    float x;                                             //      The second average is  39705780.00     为什么呢???
    x=average(10,12,23,34,56,245,3,4,6,3,34);
    printf("The first average is %f\n",x);
    x=average(25,23,23,3,24,23);
    printf("The second average is %f",x);

    getchar();
    return 0;
}

float average(int num,...)
{
    int count,total=0;
    va_list arg_ptr;

    va_start(arg_ptr,num);

    for(count=0;count<num;count++)
        total+=va_arg(arg_ptr,int);

    va_end(arg_ptr);

    return ((float)total/num);
}
搜索更多相关主题的帖子: include average 
2015-09-21 09:58
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:20 
x=average(25,23,23,3,24,23);   //第一个数是25,表示要计算25个数的平均数,你后面跟着才5个数啊

总有那身价贱的人给作业贴回复完整的代码
2015-09-21 10:04
任重道远
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2015-9-12
得分:0 
回复 2楼 embed_xuel
哦哦。草,才明白了,第一个数是设置的参数个数,是吧,它不会进入计算。。。唉 我sb了。谢谢
2015-09-21 10:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457524-1-1.html




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

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