输出功能C++出现故障
Trouble with output function C++
我很难让这个程序正常输出。它模拟了一个醉酒的水手在一块木板上随机向左或向右走一步。在模拟结束时,程序输出他从板上掉下来的次数与没有掉下来的时间的百分比。我的百分比总是零,我不知道我的代码出了什么问题。
此函数正确输出"experiments"answers"fallCount"变量,但始终将"fallCount/experiments"显示为零。
这应该是"两次实验后,水手摔倒了1次,摔倒率为0.5%"(如果实验=2,fallCount=1),则每次都为0%。
让我知道我做错了什么。非常感谢。
void outputExperimentStats(int experiments, int fallCount)
{
cout << "After " << experiments << " experiments, sailor fell "
<< fallCount << " time, fall percentage was " << fallCount / experiments << "%n";
}
这是因为您使用的是整数除法。没有小数,所以东西会被截断。例如
1 / 2 --> 0 // integer division
这是正确的,也是预期的行为。
要获得所需的行为,请使用double
或float
。
1.0 / 2.0 --> 0.5 // double division
在您的示例中,您可以将输入的类型更改为double
,或者如果您想保留它们int
,您可以在划分期间转换它们
static_cast<double>(fallCount) / static_cast<double>(experiments)
相关文章:
- 分段故障(堆芯转储)矢量
- C++中的动态铸造故障
- 数组的指针从不分段故障
- vscode g++链路故障:体系结构x86_64的未定义符号
- 访问被拒绝后,c++中的故障保护代码
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 调试 CUDA MMU 故障
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- Arch Linux.AUR 包 mysql 不能用 makepkg 构建.错误:构建 () 中出现故障
- 正在处理故障(堆芯转储)
- 在 Boost::fiber 中引发的BOOST_ASSERT故障 Visual Studio "Debug" 构建
- 如何进行故障排除:未定义对"非虚拟 thunk to ..."的引用
- C++函数过载会导致 SEG 故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 当新的故障时,是否有必要留出一些紧急内存?
- Python & C-C++ 扩展模块案例段故障
- 带升压的 SEG 故障::make_shared / 特征3 内存.h.
- 在 c++ 中,发生故障后是否需要 stream.clear()?
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串