C++ 程序中的意外计算
C++ Unexpected calculation in program
当我的程序使用命令行参数(如 60)运行时,第一个计算是错误的,但其余的似乎是正确的。我想我在main()函数中有一个错误,但我找不到它。在 Linux 60 上提供 ~30000 步,在 Windows 上显示 ~-7000000 步。
#include <iostream>
#include <cstdlib>
using namespace std;
void printcollatz( int i ) {
int count;
int originalnumber = i;
int workingnumber = i;
while( workingnumber >= 1 ) {
if( workingnumber == 1 ) {
cout << originalnumber << " takes " << count << " steps" << endl;
count = 0;
break;
}
if( workingnumber % 2 == 0 ) {
workingnumber /= 2;
count++;
}
else {
workingnumber = ( 3 * workingnumber ) + 1;
count++;
}
}
}
int main( int argc, char* argv[] ) {
int incrementnumber;
if( argc > 1 ) {
if( atoi( argv[1] ) == 0 ) {
incrementnumber = 2;
}
else {
incrementnumber = atoi( argv[1] );
}
}
while( 1 ) {
printcollatz( incrementnumber );
incrementnumber++;
}
return 0;
}
您需要初始化计数:
int count = 0;
此外,您可能还希望向循环添加终止条件。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 在C++中对T*类型执行std::move的意外行为
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 递归函数用于计算 n 个数字之和的意外输出
- 计算导致意外的0
- C++ 程序中的意外计算
- C++枚举的计算结果为意外值
- 意外的宏计算
- 在计算环形总数时出现意外结果