函数 真心搞不懂
// 113.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
#include<Windows.h>
int P(int x);
int _tmain(int argc, _TCHAR* argv[])
{//判断素数
int x = 0001;
system("color 40");
int a;
printf("请输入一个整数:\n");
scanf("%d",&a);
if(P(a))
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
printf("5秒后自动退出!\n");
Sleep(5000);
return 0;
}
int P(int x)
{
int i,n;
n = sqrt(x);
for(i = 2;i <= n;i++)
{
if(x % i == 0)
return 0;
}
return 1;
}
错误2error C2668: “sqrt”: 对重载函数的调用不明确d:\编程软件下载\microsoft visual studio 10.0\制作\课本\第六章\课本\113\113\113.cpp291113
3IntelliSense: 有多个 重载函数 "sqrt" 实例与参数列表匹配:d:\编程软件下载\microsoft visual studio 10.0\制作\课本\第六章\课本\113\113\113.cpp296113
真心看不懂怎么回事 求帮忙
[解决办法]
函数原型为double sqrt(double);
VC 2008后为重载函数,原型为 float sqrt (float),double sqrt (double),double long sqrt(double long)
你这里参数为整形,所以编译器无法知道你是要调用哪个sqrt函数,可把x换成float或者double类型
[解决办法]
這樣改吧
int i,n;
n = (int)sqrt(1.0*x);