麻烦帮忙看看下面三个程序的区别~~谢谢啦
下列是用于求一元二次方程ax2+bx+c=0的两个实根的三个c程序,分别采用不同的方法或使用不同的精度。其中a=1.0,b=-(1012+1),c=1012。
分别输入并运行这三个程序,并检验结构是否正确,分析原因。
(1)利用求根公式
程序如下:
#include <math.h>
#include <stdio.h>
void main( )
{float a,b,c,p,d,x1,x2;
a=1.0;
b=-(1.0e+12+1.0);
c=1.0e+12;
p=sqrt(b*b-4.0*a*c);
d=2.0*a;
x1=(-b+p)/d;
x2=(-b-p)/d;
printf(“x1=%e\nx2=%e\n”,x1,x2);
}
(2)利用求根公式计算一个实根,然后根据韦达定理计算另一个实根
程序如下:
#include <math.h>
#include <stdio.h>
void main( )
{float a,b,c,p,d,x1,x2;
a=1.0;
b=-(1.0e+12+1.0);
c=1.0e+12;
p=sqrt(b*b-4.0*a*c);
d=fabs(b)/b;
x1=(-b-d*p)/(2.0*a);
x2=c/(a*x1);
printf(“x1=%e\nx2=%e\n”,x1,x2);
}
(3)与(1)一样,利用求根公式,但程序中的变量均使用双精度类型。
#include <math.h>
#include <stdio.h>
void main( )
{double a,b,c,p,d,x1,x2;
a=1.0;b=-(1.0e+12+1.0);c=1.0e+12;
p=sqrt(b*b-4.0*a*c);
d=2.0*a;
x1=(-b+p)/d;
x2=(-b-p)/d;
printf(“x1=%e\nx2=%e\n”,x1,x2);
}
用c语言怎么求方程ax2+ bx+ c=0的根?
1、一元二次方程ax^2+bx+c=0的根的求解涉及到数学的二次方程解公式。当我们谈论一元二次方程的根时,我们实际上是在谈论这个方程的解,也就是能够使得方程成立的未知数的值。在C语言中,我们可以使用数学库来帮助我们进行计算。2、首先,我们需要明白一元二次方程的解的公式。这个公式是:x=(-...
C语言编程,求一元二次方程 ax2+bx+c=0 的解,谢谢
include<iostream> include<cmath> using namespace std;int main(){ for (int i=0;i<2;i++){ double a,b,c,delta,p,q;cin>>a>>b>>c;delta=b*b-4*a*c;p=-b\/(2*a);q=sqrt(fabs(delta))\/(2*a);if (delta>=0)cout<<p+q<<endl<<p-q<<endl;else { cout<<p<<"+...
...根ax²+bx+c+0的根。分别考虑有两个不等的实根,有两个相等的实根...
printf("方程的根:\\n");if(a==0){ printf("这不是一个一元二次方程。\\n");return;} else d=b*b-4*a*c;if(fabs(d)<=1e-6)\/ fabs是求实数绝对值的函数,由于d是一个实数,计算机在计算和存储时可能存在误差,所以当d是一个很小的数时,就认为他是0 *\/ printf("方程有两个...
C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
jud; printf ("输入二次方程的三个系数(第一个不能为0):"); scanf ("%f %f %f", &a, &b, &c); jud = b * b - 4 * a * c; \/\/根的判别式 if (jud > 0) { printf ("该方程有两个不相等的实根:\\n"); printf ("x1...
c语言求一元二次方程ax²+bx+c=0的实根解(设a≠0)
include <stdio.h>#include <math.h>int main(){ double a,b,c; double p; scanf("%lf%lf%lf",&a,&b,&c); p=b*b-4*a*c; if(p<0) printf("无实根\\n"); else { p=sqrt(p)\/2\/a; printf("x1=%lf x2=%lf\\n", -b\/2\/a+p, -b\/2\/a-...
C语言题 求方程ax^2+bx+c=0的根。分别考虑:有两个不等的实根;有两个...
x2 = (-b-deta)\/(2*a);} printf("x1=%.2f, x2 = %.2f\\n", x1, x2);\/\/输出两个根 } printf("===\\n");} return 1;} 输出:Please enter a, b and c:1 -7 12 a=1.00, b=-7.00, c=12.00 x1=4.00, x2 = 3.00 === Please enter a, b and c:2 -6 ...
C语言编程:求1元2次方程的根
include "math.h"void main(){ printf("求方程ax^2+bx+c=0的根:\\n");L:printf("请分别输入a,b,c的值。\\n");double a,b,c,x1,x2,x,y;char z;printf("输入a,b,c=");scanf("a=%lf,b=%lf,c=%lf\\n,&a,&b,&c");printf("你所输入的方程为%lfx^2+%lfx+%lf=0...
c语言程序用函数怎么输出ax2+bx+c=0?
解一元二次方程a x2+ b x + c = 0,a、b、c由键盘输入。分析:对系数a、b、c考虑以下情形 1) 若a = 0:① b < > 0,则x=-c\/b ;② b = 0, 则:① c = 0, 则x无定根;② c < > 0,则x无解。2) 若a < > 0 ;① b2-4 a c > 0,有两个不等的实根;② ...
C语言中求一元二次方程两根的编程问题,我想用条件表达式怎么办(显示...
int main(){ double a,b,c,sqr,x1,x2,m;printf("请输入ax^2+bx+c=0中的a、b、c: ");scanf("%lf%lf%lf",&a,&b,&c);m=b*b-4*a*c;if (m >= 0){ sqr=(double)sqrt(m);} else { printf("方程无实根\\n");return -1;} x1=(-b+sqr)\/(2*a);x2=(-b-sqr)\/(...
C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
下面是求解一元二次方程的C语言代码:include <stdio.h> include <math.h> int main(){ double a, b, c, x1, x2, disc;printf("请输入一元二次方程的系数a, b, c: ");scanf("%lf %lf %lf", &a, &b, &c);disc = b * b - 4 * a * c;if (disc > 0) { x1 = (...