我对以下简单代码有疑问,我不知道为什么输出会变成负数...该程序应该计算所有奇数和五位数的总和,例如 10001、10003、 10005等
#include <iostream>
using namespace std;
int main()
{
int num, sum = 0;
for (num = 10001 ; num <= 99999 ; num+=2){
sum += num;
}
cout << num << " " << sum;
return 0;
}
最佳答案
表示存在int类型的溢出。那就是这个类型不能代表总和。我建议像这样声明变量 sum
long long int sum = 0;
之后,您可以将结果与存储在 int 类型中的最大值进行比较。例如
#include <limits>
//...
std::cout << std::numeric_limits<int>::max() << " " << sum << std::endl;;
关于C++程序计算所有五位奇数的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868705/