gpt4 book ai didi

c++ - 为什么尽管进行类型转换,但我仍无法打印32.0而不是32?

转载 作者:行者123 更新时间:2023-12-02 09:47:47 25 4
gpt4 key购买 nike

所以这是我的代码。输入是

5


10 40 30 50 20


1 2 3 4 5


我试图找到大小为n的数组的加权平均值, vector a在 vector b中包含n个元素及其相应的权重。我不明白为什么要打印32而不是32.0?有人可以告诉我为什么以及如何更改它吗?
int main() {
int n;
cin>>n;
vector<int> a(n),b(n);
for(int i=0;i<n;i++){
cin>> a[i] ;
}
for(int i=0;i<n;i++){
cin>> b[i] ;
}
double s=0,w=0;
for(int i=0;i<n;i++){
s+=b[i]*a[i];
w+=b[i];
}
cout<<s/w*1.0;

return 0;
}

最佳答案

是否打印3232.0是输出格式的主题。默认情况下,如果可能,它将剪切所有不必要的数字(以及小数点)。 (*1.0对此无济于事。)
相关功能在<iomanip>中可用:

  • std::setprecision
  • std::setfixed

  • 例:
    #include <iomanip>
    #include <iostream>

    int main()
    {
    std::cout
    << 32.0 << '\n'
    << std::fixed << std::setprecision(1) << 32.0 << '\n';
    }
    输出:
    32
    32.0
    Live Demo on coliru

    关于c++ - 为什么尽管进行类型转换,但我仍无法打印32.0而不是32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63932848/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com