直接用两个数(或变量)相乘就可以表示平方,比如x*x
创新互联专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,成都托管服务器服务有保障!
不过如果,需要求m的n次方,就需要用到pow(x,y)乘方(包括开方)这个库函数了,使用pow(x,y)这个库函数,需要math.h头文件。
其中x和y都是双精度浮点(double)型。
#include"math.h"
U32sqrt_fun(U64x){
U32low=0;
U32high=x;
U32mid;
U64data;
while(low high){
mid=(low+high)/2;
data=(U64)mid*mid;
if(data x){
high=mid-1;
}else if(data x){
low=mid+1;
}else{
return(mid);
}
}
return(mid);
}
voidmain(void){
volatileU32td1,td2;
U64d=0x12345678ABCD;
td2=sqrt(d);
td1=sqrt_fun(d);
}
扩展资料
C语言无参函数的定义:
dataType是返回值类型,它可以是C语言中的任意数据类型,例如int、float、char等。
functionName 是函数名,它是标识符的一种,命名规则和标识符相同。函数名后面的括号( )不能少。
body是函数体,它是函数需要执行的代码,是函数的主体部分。即使只有一个语句,函数体也要由{}包围。
如果有返回值,在函数体中使用return语句返回。return出来的数据的类型要和dataType一样。
头文件:#include math.h
sqrt() 用来求给定值的平方根,其原型为:double sqrt(double x);double sqrt(double x)。
x 为要计算平方根的值。
如果 x 0,将会导致 domain error 错误,并把全局变量 errno 的值为设置为 EDOM。
返回 x 平方根。注意,使用 GCC 编译时请加入-lm。实例计算200 的平方根值。
例子:
#include math.hmain(){ double root; root = sqrt(200); printf("answer is %f\n", root);}
输出结果:answer is 14.142136。
扩展资料:
使用sqrt函数需要注意的事项:
1、sqrt函数运行的是结果是算术平方根,即不能运算处负数值,也不能输出虚数结果。如需要得到算术平方根中的负数值,则应该在sqrt函数前添加负号。
2、sqrt函数的参数必须是非负数值,如果是负数值,则输出会报错,即数值无效;如果参数是未定义的非数字变量,则按回车后也会报错,即变量名有误。
3、sqrt函数的计算精度与C语言设置的精度有关,可以通过设置更改精度。
若开平方,可以使用函数sqrt()完成,若开其他次方,可以借助函数pow()完成。
开平方示例:
#includemath.h//sqrt函数使用到的头文件
#includestdio.h
int main(void)
{
double x=4.0,result;
result=sqrt(x);//对x开平方
printf("%g\n",result);
return 0;
}
//输入结果:2
开三次方示例:
#includemath.h//pow函数使用的头文件
#includestdio.h
int main(void)
{
double x=27.0,result;
result=pow(x, 1.0/3);//对x开三次方
printf("%g\n",result);
return 0;
}
//输出结果:3
对于借助pow函数实现开方的可以借鉴开三次方示例代码。