#include<iostream>
using namespace std;
template <class T>
T av(T *data)
{
T s=0;
int i=0;
while(data[i]){cout<<"CALL! ";s+=data[i++];}
return s/(i+1);
}
int main()

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Tavis

    16人对此回答表示赞同

    CALL! 1.00000000
    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Jack

    15人对此回答表示赞同

    如图所示

    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Tavis

    15人对此回答表示赞同

    结果不确定。
    在函数av中是以0为结束标识的,但是数组x并没有0作为结束标识。

    PS:
    应该改为:
    double x[]={1.0, 0};
    结果是:
    CALL! 0.5
    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 刘思杰

    9人对此回答表示赞同

    我看了一下程序,你这个程序是有问题的。
    你的while循环中的判定条件是非0就循环,但是编译器对double类型变量为0的判断都是以在某个较小区间时就认为0。而你的这个程序应该在不同的编译器中运行的结果不同,因为他们对浮点0的处理范围不同,我现在电脑上没有编译器了,不过你可以在不同编译器上运行下,结果应该会不同。
    对于浮点0,我们在做程序时通常比较如果abs(a)<1.0*10(-6) (后面的-6为幂)时就自动判断为0.
    希望对你有帮助。
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部