5 つの整数を読み取り、それらの数値を使用してさまざまな計算の結果を出すプログラムがあります。幾何平均の計算に特に問題があります。数値を掛け合わせて、結果の n 乗根を取ることになっていることは承知しています。
私のコードは次のとおりです (すべての #includes と main メソッドが正しいと仮定します):
int num1, num2, num3, num4, num5;
cout << "Enter five integers: \n";
cin >> num1 >> num2 >> num3 >> num4 >> num5;
double gMean = pow((num1 * num2 * num3 * num4 * num5), (1.0/5.0));
cout << "Geometric mean = " << gMean << endl;
このコードは、1、2、3、4、5 などの小さな数字に対して機能しますが、大きな数字を入力すると、答えとして nan が返されます。
この作業に必要な数字は、85、43、95、100、および 78 です。
私の質問は次のとおりです: pow() 関数は、大きな数値を入力すると答えとして nan を返しますが、小さな数値を入力すると正しい答えを返すのはなぜですか?
編集:最初の質問に答えました。オーバーフローの問題があることがわかったので、どうすれば解決できますか?