Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我不能打印32.0而不是32而不进行类型转换?_C++_Syntax_Statistics_Type Conversion_Weighted Average - Fatal编程技术网

C++ 为什么我不能打印32.0而不是32而不进行类型转换?

C++ 为什么我不能打印32.0而不是32而不进行类型转换?,c++,syntax,statistics,type-conversion,weighted-average,C++,Syntax,Statistics,Type Conversion,Weighted Average,这是我的代码。输入是 五, 104030020 123445 我试图找到一个大小为n的数组的加权平均值,向量a包含n个元素,它们对应的权重在向量b中。我不明白为什么打印的是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] ; }

这是我的代码。输入是

五,

104030020

123445

我试图找到一个大小为n的数组的加权平均值,向量a包含n个元素,它们对应的权重在向量b中。我不明白为什么打印的是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;
}
intmain(){
int n;
cin>>n;
向量a(n),b(n);
对于(int i=0;i>a[i];
}
对于(int i=0;i>b[i];
}
双s=0,w=0;

for(int i=0;i是否打印
32
32.0
是输出格式的主题。默认情况下,如果可能,它会剪裁所有不必要的数字(以及小数点)。
*1.0
对此没有帮助。)

相关功能在
中提供:

例如:

#include <iomanip>
#include <iostream>

int main()
{
  std::cout
    << 32.0 << '\n'
    << std::fixed << std::setprecision(1) << 32.0 << '\n';
}

它是否打印
32
32.0
是输出格式的主题。默认情况下,如果可能,它会剪裁所有不必要的数字(以及小数点)。
*1.0
对此没有帮助。)

相关功能在
中提供:

例如:

#include <iomanip>
#include <iostream>

int main()
{
  std::cout
    << 32.0 << '\n'
    << std::fixed << std::setprecision(1) << 32.0 << '\n';
}

如果要设置输出格式,可以使用
setprecision
iomanip
功能,如下所示:

    std::cout << std::fixed; 
    std::cout << std::setprecision(1); //setprecision(n) where n = number of decimal digits
    std::cout <<s/w << '\n';\

std::cout如果要设置输出格式,可以使用
setprecision
iomanip
函数,如下所示:

    std::cout << std::fixed; 
    std::cout << std::setprecision(1); //setprecision(n) where n = number of decimal digits
    std::cout <<s/w << '\n';\

默认情况下,
std::coutc++
cout
自动删除尾随的零


如果您希望看到它们,则必须使用
std::coutc++
cout
在默认情况下自动删除尾随的零

如果您想查看它们,必须使用
std::cout