VS2010がコンパイルしない以下のコードスニペットの何が問題になっていますか?
int m = sqrt( n );
(整数が素数であるかどうかを確認しようとしています...)
VS2010がコンパイルしない以下のコードスニペットの何が問題になっていますか?
int m = sqrt( n );
(整数が素数であるかどうかを確認しようとしています...)
特定の浮動小数点型をに渡す必要がありますsqrt-整数のオーバーロードはありません。例を使用してください:
long double m = sqrt(static_cast<long double>(n));
あなたが含まcmathないので、math.h私はあなたがc++を望んでいると仮定しています。Cの場合、次を使用する必要があります。
double m = sqrt((double) n);
発生するエラーは、コンパイラが関数を自動的に選択できないことを意味しsqrtます。渡す整数は浮動小数点型に変換する必要があり、コンパイラはどの浮動小数点型とsqrt関数を選択する必要があるかを認識していません。