0

整数は、-2147483648十分に大きな数を 2 つ入力した場合に答えを制限します。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 に答える