C++ 为什么即使我的程序已经有了它的值,我仍然要得到0作为我程序的答案?(C+;+;)
代码行C++ 为什么即使我的程序已经有了它的值,我仍然要得到0作为我程序的答案?(C+;+;),c++,C++,代码行cout.width(10);cout简短回答:用100.0替换100 (freq) /(n)*100.0 长答覆: 除以整数数据类型也会生成一个整数作为数据类型,因此如果执行A/B和B>A,并且B和A都是整数,则结果是0不能执行float x[n] C++中,使用 STD::向量x(n)< /C> >,即使我将它改为100,它仍然会得到0。还有别的办法吗?没有。。。它必须是0.00,如果不是,则表示您做错了……乘法和除法从左到右分组,这样表达式就相当于(freq/n)*100.0。除法
cout.width(10);cout简短回答:用100.0替换100
(freq) /(n)*100.0
长答覆:
除以整数数据类型也会生成一个整数作为数据类型,因此如果执行A/B
和B>A,并且B和A都是整数,则结果是0不能执行float x[n]代码> C++中,使用<代码> STD::向量x(n)< /C> >,即使我将它改为100,它仍然会得到0。还有别的办法吗?没有。。。它必须是0.00,如果不是,则表示您做错了……乘法和除法从左到右分组,这样表达式就相当于(freq/n)*100.0
。除法仍然将两个整数相除。写为100.0*freq/n
以利用分组规则。谢谢你,皮特!我不知道。