汀EL 2022-04-18 09:51 采纳率: 100%
浏览 49
已结题

模板里的static想重置成零怎么办

img

img


下面是我的错误,别被气到
#include
#include
using namespace std;
template
T Average(T x)
{
static T ave = 0;
ave+= x;
return ave;
}

int main()
{
int a; double b; string s; int n; int sum1=0; double sum2=0;
while(cin>>s>>n)
{
if (s == "0") { for (int i = 0; i < n;i++)
{
cin >> a; sum1=Average(a);

    }
    cout << sum1 / n << endl;
    }
    if (s == "1") {
        for (int i = 0; i < n; i++)
        {
            cin >> b;sum2= Average(b);
        }
        cout <<fixed<<setprecision(2)<< sum2 / n << endl;
    }
}

}

  • 写回答

2条回答 默认 最新

  • 关注

    T Average(T x)函数中添加一个变量,根据这个变量来决定是否把ave置0
    如下:

    #include <iostream>
    #include <iomanip>
    using namespace std;
    template <typename T>
    T Average(T x,int flag=0) //添加一个默认参数
    {
        static T ave = 0;
        if (flag == 1) //根据参数设置ave的值
        {
            ave = 0;
            return 0;
        }
        ave += x;
        return ave;
    }
    int main()
    {
        int a; double b; string s; int n; int sum1 = 0; double sum2 = 0;
        while (cin >> s >> n)
        {
            Average(0, 1); //在这里重置ave
            if (s == "0") {
                for (int i = 0; i < n; i++)
                {
                    cin >> a; 
                    sum1 = Average(a);
    
                }
                cout << sum1 / n << endl;
            }
            if (s == "1") {
                for (int i = 0; i < n; i++)
                {
                    cin >> b; sum2 = Average(b);
                }
                cout << fixed << setprecision(2) << sum2 / n << endl;
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月18日
  • 已采纳回答 4月18日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退