题目:对于一元二次方程a+bx+c=0,判断有无实根,若有,则输出实根。(a,b,c由键盘输入)。
分析:1、键盘键入a、b、c;
2、求delta = - 4ac的值;
3、判断与0的大小关系。若delta>0,则有两个不同的实根,带入求根公式,得到实根为x1 = ,x2 = ;若delta=0,则有两个相同的实根,则根为x1 = x2 = ;若delta<0,则无实根;
代码:
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
double delta,x1,x2;
delta = b*b - 4*a*c;
if (delta > 0){
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("方程有两个不相同的实根x1=%f,x2=%f\n",x1,x2);
}else if(delta == 0){
x1 = -b / (2*a);
x2 = x1;
printf("方程有两个相同的实根x1=x2=%f\n",x1);
}else{
printf("无实根\n");
}
return 0;
}