首先你已经很清楚的说明了你这个程序是用C语言写二次函数的,而当a=0时,就不是二次函数了,应该按照一次函数来进行计算,否则 一个数除以0就没有意义了.~
成都创新互联公司主要从事成都网站制作、成都网站建设、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务都昌,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
#include stdio.h
#include stdlib.h
#include math.h
int main()
{
float a,b,c;
float x1,x2,m;
printf("input number a=:");
scanf("%f",a);
printf("input number b=:");
scanf("%f",b);
printf("input number c=:");
scanf("%f",c);
if(a==0)
printf("一根:%f\n",c*(-1)/b);
else if(a==0b==0)
printf("无意义!");
else
{
m=b*b-4*a*c;
if(m0)
{
printf("两根\n");
printf("x1=%f\n",(-b+sqrt(m))/(2*a));
printf("x2=%f\n",(-b-sqrt(m))/(2*a));
}
else if(m==0)
printf("x1=x2=%f\n",x1);
}
else
printf("无实根\n");
}
return 0;
}
这个简单啊
#includestdio.h
#includemath.h
main()
{
double a,b,c,w;
printf("请输入三个数(方程的系数),中间用空格分开\n");
scanf("%lf%lf%lf",a,b,c);
w=b*b-4*a*c;
if (w0)printf("方程无解\n");
else if(w==0)printf("方程有一个解:x=%lf\n",-b/(2*a));
else printf("方程有两个解:x1=%lf,x2=%lf\n",(-b+sqrt(w))/(2*a),(-b-sqrt(w))/(2*a));
}
#include stdio.h
#include math.h
int main(void) {
double a, b, c, delta;
printf("ax²+bx+c=0\n");
printf("a = ");
scanf("%lf", a);
printf("b = ");
scanf("%lf", b);
printf("c = ");
scanf("%lf", c);
delta = b * b - 4 * a * c;
if (delta 0.0) {
/*方程无实数解*/
printf("无解\n");
} else if (delta == 0.0) {
/*方程有两个相等实数根, x1 = x2 = -b/2a*/
printf("x1 = x2 = %g\n", - b / (2 * a));
} else {
/*方程有两个不相等实数根, x = (-b±sqrt(delta))/2a*/
printf("x1 = %g, x2 = %g\n", (- b + sqrt(delta)) / (2 * a),
(- b - sqrt(delta)) / (2 * a));
}
return 0;
}