0

VS2010がコンパイルしない以下のコードスニペットの何が問題になっていますか?

int m = sqrt( n );

(整数が素数であるかどうかを確認しようとしています...)

4

1 に答える 1

4

特定の浮動小数点型をに渡す必要がありますsqrt-整数のオーバーロードはありません。例を使用してください:

long double m = sqrt(static_cast<long double>(n));

あなたが含まcmathないので、math.h私はあなたがc++を望んでいると仮定しています。Cの場合、次を使用する必要があります。

double m = sqrt((double) n);

発生するエラーは、コンパイラが関数を自動的に選択できないことを意味しsqrtます。渡す整数は浮動小数点型に変換する必要があり、コンパイラはどの浮動小数点型とsqrt関数を選択する必要があるかを認識していません。

于 2011-03-27T16:39:50.720 に答える