描述
求一元二次方程:
的根,系数a、b、c为浮点数。
输入
输入a、b和c。
输出
若无穷解,则输出:Infinitely solution。
若无解,则输出:No solution。
若是一个实根,则输出格式为:x=…,数字、符号之间没有空格,结果保留2位小数。
若两个实根相等,则输出格式为:x1=x2=...,数字、符号之间没有空格,结果保留2位小数。
若是两个实根,则输出格式为:x1=...;x2=...,数字、符号之间没有空格,结果保留2位小数。
若是虚根,则输出:Imaginary root。
输入输出示例
输入 | 输出 | |
示例 1 | |
|
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,d,s1,s2,s,x;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0){
if(b==0){
if(c==0)
{
printf("Infinitely solution");
}
else if(c!=0)
{
printf("No solution");
}
}
else if(b!=0)
{
x=-c/b;
printf("x=%.2f",x);
}
}
else if(a!=0){
if(d>0)
{
s1=(-b+sqrt(d))/(2*a);
s2=(-b-sqrt(d))/(2*a);
if(s1>s2)printf("x1=%.2f;x2=%.2f",s1,s2);
else if(s2>s1)printf("x1=%.2f;x2=%.2f",s2,s1);
}
else if(d==0)
{
s=(-b+sqrt(d))/(2*a);
printf("x1=x2=%.2f",s);
}
else{
printf("Imaginary root");
}
}
return 0;
}