C语言编程 求平方根

C语言编程 求平方根,第1张

#include <stdioh>

#include <mathh>

int main( )

{

double x, root;

scanf("%lf", &x);

/---------/

root=sqrt(x);

printf("The square root of %01f is %01f\n", x, root);

return 0;

}

可以使用if语句来判断输入的数是否为正数,如果是,则求其平方根,否则不做任何处理。

以下是使用C语言实现该功能的代码示例:

#include <stdioh>

#include <mathh>

int main() {

double num, sqrt_num;

printf("请输入一个数:");

scanf("%lf", &num);

if (num >= 0) {

sqrt_num = sqrt(num);

printf("该数的平方根为:%lf", sqrt_num);

}

else {

printf("该数为负数,无法求平方根。");

}

return 0;

}

在上述代码中,先使用scanf函数读取输入的数,然后使用if语句判断输入的数是否为正数。如果是正数,则调用sqrt函数求其平方根并输出结果;如果是负数,则输出提示信息。需要注意的是,由于求平方根的结果可能是小数,因此使用double类型来存储输入的数和平方根的值。

1、平方根

C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。

2、N次方根

double pow(double x,double n)

是mathh里一函数,求x的n次幂

x必须>0,

立方根就是1/3次幂了

但这里要用30或10/3,否则成了整除结果为1

扩展资料:

C语言函数

double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度

double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度

double atan(double x) 返回x的反正切tan-1(x)值,x为弧度

double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度

ldexp()函数:返回x乘以2的exponent次方(次幂)的值

labs()函数:求整数的绝对值(针对long类型)

isgraph()函数:判断一个字符是否是图形字符

isdigit()函数:判断一个字符是否为数字

iscntrl()函数:判断一个字符是否为控制字符

isalpha()函数:判断一个字符是否是字母

isalnum()函数:判断一个字符是否是字母或者数字

-c语言

#include <stdioh>

#include <mathh>

int main()

{

    float a=5, b;

    b=sqrt(a);

    printf("a的平方根为:%f\n",b);

    return 0;

}

1 循环输入整数。

2 判断整数值,如为正数,则退出循环,否则继续输入;

3 利用sqrt函数求平方根

4 输出。

代码如下:

int main()

{

    int n;

    double r;

    while(1)

    {

        scanf("%d",&n);

        if(n>0)break;

    }

    r = sqrt(n);

    printf("%lf",r);

}

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

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

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

#include<stdioh>

#include<mathh>

double squareFun(double x) // 平方

{

    return xx;

}

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(midmid-x) <= val) // 达到进度则退出

            break;

        if (midmid > 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));

}

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

原文地址:https://54852.com/langs/11677341.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存