sqrt()函数在c语言中用于计算一个非负实数的平方根。
函数原型: 在VC60中的mathh头文件的函数原型为double sqrt(double);
说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。
你的库文件mathh里面的sqrt()函数的参数有两种,aqrt(double
value),或者aqrt(float
value),而你用的是aqrt(5),找不到匹配项。
因为c++支持重载函数,如果参数不匹配那么就认为找不到该函数。
而c不支持重载,所以会自动将你的5转换成浮点数再运算,就不报错了。
正确的做法,将aqrt(5)改为sqrt(50)#include<stdioh>
#include<stdlibh>
#include<mathh>
void main()
{
int m,i;
float k; //改动这
printf ("input a number:");
scanf("%d",&m);
// k = sqrt(m);
k = sqrt(float(m)); //改动这
for (i=2; i <=k;i++)
if (m % i==0)
break;
if (i>k)
printf("yes\n");
else
printf("no\n");
}
//书上写的不一定对
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)