题目要求解得ax2+bx+c=0方程的根。
由键盘输入a,b,c。假设a,b,c的值任意,并不保证b2-4ac≥0。
需要在程序中进行判别,如果b2-4ac≥0,就计算并输出方程的两个实根,
如果b2-4ac<0,就输出“此方程无实根”的信息。
#include <stdio.h>
#include <math.h>//程序中要调用求平方根函数sqrt
int main(int argc, char** argv) {
int a,b,c,disc,x1,x2,y; //disc是判别式sqrt(b*b-4ac)
printf("输入a,b,c分别为:");
scanf("%d,%d,%d",&a,&b,&c);
printf("方程为:%dx2+%dx+%d=0(a不等于0)
",a,b,c);
disc=pow(b,2)-4*a*c;
if(disc>=0)
{
a=2*a;
x1=(-b+sqrt(disc))/a;
x2=(-b-sqrt(disc))/a;//求出方程的两个根
if(x1==x2) {
printf("方程的两个实根分别为:x1=x2=%d",x1);
}
else
{
printf("方程的两个实根分别为:x1=%d,x2=%d",x1,x2);
};
}
else
{
printf("此方程无实根!");
};
return 0;
}