int m =sqrt((double)i);C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧在C++中sqrt有两个重载函数,一个参数是double,另一个是float由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。
创新互联服务项目包括大竹网站建设、大竹网站制作、大竹网页制作以及大竹网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,大竹网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到大竹省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。如输入m=sqrt(4);,则输出结果为2。或者对于变量a有赋值9,,则输入m=sqrt(9),输出结果为3.
需要注意的是以下三点:
sqrt函数运行的是结果是算术平方根,即不能运算处负数值,也不能输出虚数结果。如需要得到算术平方根中的负数值,则应该在sqrt函数前添加负号。
sqrt函数的参数必须是非负数值,如果是负数值,则输出会报错,即数值无效;如果参数是未定义的非数字变量,则按回车后也会报错,即变量名有误。
sqrt函数的计算精度与C语言设置的精度有关,可以通过设置更改精度。
#includestdio.h
#includemath.h
int prime(int m)
{
int k,j;
k=(int)sqrt(m); //加个强制转换就可以了,不然会报警告。sqrt()的返回值类型是double 出现红线,只是有可能是拼写问题,不代表是错误
for(j=2;j=k;j++)
if(m%j==0)
return 0;
return 1;
}
int main()
{
int m=2,n=20,i,s;
s=0;
for(i=m;i=n;i++)
if(prime(i)==0)
s+=i;
printf("Sum is:%d\n",s);
return 0;
}
C语言中sqrt函数的使用方法:
C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。在VC6.0中的math.h头文件的函数原型为doublesqrt(double)。
说明:sqrt系SquareRootCalculations(平方根计算),通过这种运算可以考验CPU的浮点能力。
程序例:
#include
#include
intmain(void)
{
doublex=4.0,result;
result=sqrt(x);//result*result=x
printf(“Thesquarerootof%fis%f\n”,x,result);
return0;
}
VC2008后为重载函数,原型为floatsqrt(float),doublesqrt(double),doublelongsqrt(doublelong)
注意没有sqrt(int),但是返回值可以为int。
注意事项:
1.sqrt函数运行的结果是算术平方根,即不能运算出负数值,也不能输出虚数结果。如需要得到算术平方根中的负数值,则应该在sqrt函数前添加负号。
2.sqrt函数的参数必须是非负数值,如果是负数值,则输出会报错,即数值无效;如果参数是未定义的非数字变量,则按回车后也会报错,即变量名有误。
3.sqrt函数的计算精度与C语言设置的精度有关,可以通过设置更改精度。
使用这个函数的时候需要引入math.h头文件
示例代码如下:
#include stdio.h
#include math.h /*引入math.h头文件*/
int main(int argc, char *argv[])
{
printf("%lf\n", sqrt(9)); /*使用sqrt函数*/
return 0;
}
运行结果如下: