c语言求平方根

c语言求平方根,第1张

平方直接两个早做数相乘即可。

平方根可以通过这个数本身和0之间进行折半查找的方法,对数据进行计算。

当两数相乘大于这个数时,重置最大值;小于这个数时,重置最小值。由于存在除不尽的数,可以加上一个精度进行判断。

#include<stdio.h>

#include<math.h>

double squareFun(double x) // 平方

{

    return x*x

}

double sqrtFun(double x, int precision) 基虚// 开方

{

    double a = 0, b = x, mid = x/2, val = pow(10, -precision)

    if (x < 0)

        return -1

    while (true)  // 循环折半查找

    {

        if (fabs(mid*mid-x) <= val) // 搏睁燃达到进度则退出

            break

        if (mid*mid > x)  

            b = mid  // 重置最大值

        else

            a = mid  // 重置最小值

        mid = (a+b)/2

    }

    return mid

}

int main()

{

    double d = sqrtFun(2, 15)

    printf("%.15lf\n", d)

    printf("%.15lf\n", squareFun(d))

}

int

x=3,y=2float

a=2.5,b=3.5

(x+y)%2+(int)a/(int)b

1.计算x+y=3+2=5;

2.(x+y)%2表示除以2的余数。5/2=2余1

3.(int)a/(int)b;强制转换a=2,b=3a/b=2/3=0

所以结果是1+0=1;

注意:

1.float型转换为int型,只取整数部分卖谈腊拦不产生四舍五入中局碰等效果。如float型3.82转换为int结果就是3

2.两个int型相除,结果也为int型,也是取整数部分。如2/3=0.666...取整数部分结果就是0


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12462039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存