方程求根
为什么a,b,c输入什么数 输出结果都是无解,哪里出问题了求分析#include <stdio.h>
#include <math.h>
int main ()
{
double a,b,c,x1,x2,p,q;
printf("请输入方程ax^2+bx+c=0中的a,b,c:");
scanf("%g %g %g",&a,&b,&c); //输入abc
p=b*b-4*a*c;
q=-b/(2.0*a);
if (a=0) //a=0一元一次方程
{
x1=-c/b;
printf("\n%g\n",x1);
}
else if (p=0)
{
x1=q;
printf("\n%g\n",x1);
}
else if (p>0)
{
x1=q+sqrt(p)/2.0*a;
x2=q-sqrt(p)/2.0*a;
printf("\n%g\n%g\n",x1,x2);
}
else
{
printf("无解\n");
}
} C语言中的等号是 == , 而 = 是赋值号, 在if (a=0)包括下边的else if语句那里错了,另外注意0不能做分母的情况 楼上正解
页:
[1]