求解一元二次方程 c语言

初中的时候我们就会求解一元二次方程了,下面让我们来教计算机如何求解。输入 a,b,c ,就一元二次方程 ax²+bx+c=0 的根。

输入:
假设 a,b,c均int。

输出:
要求输出的根为 double 型,保留 6 位小数。

测试输入 期待的输出
0 0 0 Input error!
0 0 10 Input error!
0 10 0 x=0.000000
10 0 0 x1=x2=0.000000
10 20 0 x1=0.000000
x2=-2.000000
1 2 1 x1=x2=-1.000000
1 2 -1 x1=0.414214
x2=-2.414214

第1个回答  推荐于2016-12-01
首先根据公式我们可以算出x1和x2的值用a,b,c来表示。然后再计算。
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c;
float x1,x2;
printf("please input there number a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a!=0||b!=0)
{
x=(-b+sqrt(b*b-4*a*c))/(2*a);
y=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x=%f\ny=%f\n",x1,x2);
}
else
printf("input error\n");
}
注:float本来后面标准就是保留6位小数,所以不用double型来做。如果还有什么要改进的地方就可以在上面改,直到符合你的要求。sqrt是开根号的方法,用前要在最开始导出。本回答被提问者采纳
第2个回答  2009-11-16
穷举法哇
相似回答