0

-2147483648如果我输入两个足够大的数字,整数会限制我的答案。我可以替换double v1 = 0, v2 = 0为我的代码吗?如果我这样做,有没有办法让它输出答案的全长(不是5e+17等)

谢谢。

#include <iostream>
using namespace std;

int main ()
{
cout << "Enter two numbers: " << endl;
int v1 = 0, v2 = 0;
cin >> v1 >> v2;
int sum = 0, val = v1;

while (val <= v2)
{
    sum += val;
    ++ val;
}
cout << "The sum of " << v1 << " through " << v2 << " inclusive is " << sum << endl;

return 0;
}
4

2 回答 2

3

您使用的是 32 位整数。您可以改用 64 位整数,int64_t. 或者,如果您需要比这更多的范围,则使用具有任意精度的大整数类。

但我敦促您不要将浮点运算用于整数计算。那将是不准确的。

于 2013-03-23T22:20:35.767 回答
0

我可以用 double v1 = 0, v2 = 0 代替我的代码吗?

你可以,但是当你开始使用浮点数时会出现一些警告。小心他们。

有没有办法让它输出答案的全长

你想做一些iomanip

#include <iomanip>

std::cout << std::setiosflags(std::ios::fixed) << std::setprecision(2) << val;
于 2013-03-23T22:21:57.630 回答