设有一个一元二次方程ax^2+bx+c=0,输入a,b,c的值,判断该一元二次方程是有两个实根,还是一个实根,还是没有实根。若有两个实根则输出两个实根的解,若有一个实根则输出一个实根的解,若没有则不输出。
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,x1,x2,d,g;
printf("输入a:");
scanf("%d",&a);
printf("输入b:");
scanf("%d",&b);
printf("输入c:");
scanf("%d",&c);
g=b*b-4*a*c;
d=sqrt(b*b-4*a*c);
if(g>0){
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
printf("一元二次方程x^%d+%dx+%d存在两个实根:x1=%d,x2=%d",a,b,c,x1,x2);
}
else if(g==0)
{
x1=(-b)/(2*a);
x2=x1;
printf("一元二次方程x^%d+%dx+%d存在一个实根:x=%d",a,b,c,x1);
}
else if(g<0)
printf("一元二次方程x^%d+%dx+%d不存在实根",a,b,c);
return 0;
}