189 8069 5689

开二次根函数c语言 c语言二次根号怎么打出来

c语言中如何开根号运算

用math.h里封装好的函数,具体如下:

创新互联公司-专业网站定制、快速模板网站建设、高性价比囊谦网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式囊谦网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖囊谦地区。费用合理售后完善,10年实体公司更值得信赖。

求平方根:double sqrt(double x)

例:

#include math.h

#include stdio.h

int main(void)

{

double x = 4.0, result;

result = sqrt(x);

printf("The square root of %lf is %lf

", x, result);

return 0;

}

扩展资料:

关于c语言的基本运算

1.加法运算符 +

int a = 10;

int b = a + 5;

在第3行利用加法运算符 + 进行了加法运算,再将和赋值给了变量b,最终变量b的值是15

2.减法运算符 或 负值运算符 -

int b = 10 - 5;

int a = -10;

1 在第1行利用减法运算符 - 进行了减法运算,再将差赋值给了变量b,最终变量b的值是5

2 在第3行中,这个 - 并不是什么减法运算符,而算是一个负值运算符,-10代表的是负十

3.乘法运算符 *

int b = 10 * 5;

注意:乘法运算符并不是x或者X,而是星号*。变量b最终的值是50。

4.除法运算符 /

double a = 10.0 / 4;

double b = 10 / 4;

printf("a=%f, b=%f \n", a, b);

注意:除法运算符并不是÷,而是一个正斜杠 /

1 第1行中的10.0是浮点型,4是整型,因此会将4自动类型提升为浮点型后再进行运算,最后变量b的值是2.5

2 第2行中的10和4都是整型,计算机中的运算有个原则:相同数据类型的值才能进行运算,而且运算结果依然是同一种数据类型。因此,整数除于整数,求出来的结果依然是整数,会损失小数部分。最后变量b的值是2。

5.模运算符或称取余运算符 %

注意:这个%并不是除号÷,它是一个取余运算符,或者叫做模运算符。取余的意思是,取得两个整数相除之后的余数。比如,5除于2的余数是1,5除于3的余数是2。因此使用这个%有个原则:%两侧必须都为整数。

错误的写法:1 int a = 5.0 % 2;

编译器会直接报错,因为5.0并非整数。

c语言求一元二次根的函数

abc输入的时候就出错了,还有需要判断是否有解、、

改了一下:

#include stdio.h

#include math.h

void main ()

{

double a,b,c,q,p,x1,x2,disc;

printf("input three number a,b,c\n");

scanf("%lf,%lf,%lf",a,b,c);

disc=b*b-4*a*c;

if(disc0)

{

p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

x1=p+q;

x2=p-q;

printf("\nx1=%5.2f \nx2=%5.2f\n",x1,x2);

}

else if (disc==0)

{

p=-b/(2.0*a);printf("\nx=%5.2f\n",p);

}

else

printf("no answer!!");

}

如何用c语言实现化简二次根式?思路和代码都要。

首先假设你的二次根式除去根号以外是在有理数的范围内吧

首先二次根式分为四个部分a,b,c,d

则按照这个假设,二次分式应该满足以下模型

(a/b)sqrt(c/d) 这里a,b,c,d根据假设应该都是整数

化简二次根式无非是希望使得该二次根式只有3个部分,也就是要使得

(a/b)sqrt(c/d) = (e/f)sqrt(g)这种格式

显然 sqrt(c/d) = sqrt(c) / sqrt(d) = ( sqrt(c) * sqrt(d) ) / ( sqrt(d) * sqrt(d) ) = ( sqrt(c) * sqrt(d) ) / d

= sqrt(c*d) / d

换句话说 必然满足以下方程

f = d * b

e * sqrt(g) = a * sqrt( c * d )

开方和约分的问题了

首先开方

分解质因数 c *d 然后将其中多次出现的质因数的个数除2 就是开方出来的结果 设为 h

那么这样的话 e = a * h , g = ( c * d ) / ( h * h )

最后的约分只需要用辗转相除计算出 e 与 f的最大公约数然后除去即可

最后粗略的写下代码

long q[10000]; // 质数表

long times[10000]; // 次方计数

long add = 0

int gcd(long m1,long m2)

{

if( m1 == 0 ) return m2;

return gcd( m2 % m1 , m1 );

}

int main()

{

add = 0; // 质数计数清零

for(long i=2;i=10000;i++)

{

add++;

for(long j=2;j=sqrt(i);j++)

if( i % j == 0 )

{

add--;

break;

}

q[add] = i;

} // 构建质数表

long a,b,c,d;

scanf("%ld%ld%ld%ld",a,b,c,d); // 输入二次根式的四个参数(a/b)* sqrt(c/d)

long temp = c * d;

add = 1; // 从第一个质数开始尝试

long h = 1;

while(temp != 1 q[add] = temp) // 分解 c * d 计算出 h

{

long add2 = 0;

if( temp % q[add] == 0 )

{

temp /= q[add];

add2++; // 如果是当前temp的质因数则+1

continue;

}

for( long i=1;i=add2 / 2 ; i ++ )

{

h *= q[add];

}

add++; //查看下一个质数

}

long g = ( c * d ) / ( h * h );

long e = a * h;

long f = d * b;

long m = gcd( e , f ); // 计算 e 与 f的最大公约数

e /= m;

f /= m; //计算出约分后的 e和f

printf("化简后的二次根式为(%ld/%ld)*sqrt(%ld)",e,f,g); // 也就是(e/f)*sqrt(g)

return 0;

}


标题名称:开二次根函数c语言 c语言二次根号怎么打出来
网站链接:http://jkwzsj.com/article/dospesg.html

其他资讯