关于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 个 ========== 这是什么回事,改了好多次都不行,求高手解答!!!万分感谢!
展开
4个回答
展开全部
sqrt(x*1.0);
在C++里面一定要指明什么类型的,你那个x是int类型的,要转化一下,转成浮点型
在C++里面一定要指明什么类型的,你那个x是int类型的,要转化一下,转成浮点型
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加上(DOUBLE)类型强制转换就可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询