关于VC2008 error C2668: “sqrt”: 对重载函数的调用不明确 的问题

代码如下://判断一个输入的数是否为素数#include<stdio.h>#include<math.h>#include<stdlib.h... 代码如下://判断一个输入的数是否为素数#include <stdio.h>#include <math.h>#include <stdlib.h>int sushu(int x){ int i,m; m=sqrt(x); for (i=2;i<=m;i++) {  if (x%i==0)   break; } if (i<m)  return 0; else  return 1;}int main (){ int sushu(int x); int y,a; printf("y="); scanf("%d",&y); a=sushu(y); if (a==1)  printf("sushu\n"); else  printf("no\n"); system("pause"); return 0;} 这段代码在VC6.0的环境下可以调试成功,但是在VC2008的环境下出现提示如下:1>------ 已启动生成: 项目: 2. 写一个判断素数的函数, 配置: Debug Win32 ------1>正在编译...1>question2.cpp1>c:\users\administrator\desktop\c与语言11.12函数与结构体\2. 写一个判断素数的函数\2. 写一个判断素数的函数\question2.cpp(7) : error C2668: “sqrt”: 对重载函数的调用不明确1>        e:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(581): 可能是“long double sqrt(long double)”1>        e:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(533): 或       “float sqrt(float)”1>        e:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(128): 或       “double sqrt(double)”1>        试图匹配参数列表“(int)”时1>生成日志保存在“file://c:\Users\Administrator\Desktop\C与语言11.12函数与结构体\2. 写一个判断素数的函数\2. 写一个判断素数的函数\Debug\BuildLog.htm”1>2. 写一个判断素数的函数 - 1 个错误,0 个警告========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 这是什么回事,改了好多次都不行,求高手解答!!!万分感谢! 展开
 我来答
besthelp
2012-01-09 · TA获得超过1057个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:389万
展开全部
我们看下sqrt函数的声明
double sqrt(_In_ double _X);
float sqrt(_In_ float _X);
参数x是个整型,不管double还是float,都可以做隐型转换,所以调用sqrt时会参生二义性,编译器不知道你想使用哪个sqrt函数,调用不明确。
所以 sqrt(x) 改为
sqrt( (double)x ); 或 sqrt( (float)x );
百度网友28b4182
推荐于2017-12-15 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1846万
展开全部
sqrt(x*1.0);
在C++里面一定要指明什么类型的,你那个x是int类型的,要转化一下,转成浮点型
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
engleyong
2012-01-09
知道答主
回答量:10
采纳率:0%
帮助的人:1.8万
展开全部
加上(DOUBLE)类型强制转换就可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li395566230
2012-01-11
知道答主
回答量:17
采纳率:0%
帮助的人:5.1万
展开全部
xcvxcv
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式