c语言中求平方根

发布网友 发布时间:2022-04-23 03:57

我来回答

4个回答

热心网友 时间:2022-07-08 10:13

平方直接两个数相乘即可。
平方根可以通过这个数本身和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));
}

热心网友 时间:2022-07-08 10:13

#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
printf("请输入x:");
scanf("%lf",&x); //double用lf
if (0<x&&x<1000)
{
y=sqrt(x);
printf("x的平方根是%lf\n",y); //double用lf
}
else
{
printf("请重新输入x的值\n");
}
return 0;
}追问为什么double 用lf?

追答scanf()
printf()
对于不同的数据有不同的规定
%d int
%s 字符串
%c char
%lf double
细节请查询书或百度

热心网友 时间:2022-07-08 10:14

将你的程序中的 所有有 % 的地方换成 %lf
因为你控制输入输出的时候用的是 double类型的,格式 不一致会导致输入输出有误。

热心网友 时间:2022-07-08 10:15

#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
printf("请输入x:");
scanf("%f",&x);
if (0<x&&x<1000)
{
y=sqrt(x);
printf("x的平方根是%f\n",y);//是%f 你试试吧
}
else
{
printf("请重新输入x的值\n",x);
}
return 0;
}追问亲爱的,%f是错误的,%lf才是正确答案喔

追答呵呵 收教了 你懂了就好了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com