重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我已经按你的意思修改了,也运行出来了,希望对你有帮助,代码附带在下面:
专注于为中小企业提供网站建设、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业兴安盟乌兰浩特免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
#includestdio.h
#includemath.h
float t,x1,x2;
void main()
{
void situ1(float a,float b,float c);
void situ2(float a,float b,float c);
void situ3();
float x,a,b,c;
scanf("%f%f%f",a,b,c);
if (a==0)
{
x=-c/b;
printf("x=%.2f\n",x);
}
else
{
t=b*b-4*a*c;
if (t0)
situ1(a,b,c);
else if(t==0)
situ2(a,b,c);
else
situ3();
}
}
void situ1(float a,float b,float c)
{
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
printf("x1=%.2f\tx2=%.2f\n",x1,x2);
}
void situ2(float a,float b,float c)
{
x1=x2=(-b+sqrt(t))/(2*a);
printf("x1=x2=%.2f\n",x1);
}
void situ3()
{
printf("没有实根\n");
}
你的
else if(b*b-4*a*c==0)
x1=x2=-b/2*a; printf("%.2f,%.2f",x1,x2);
和
else $=sqrt(b*b-4*a*c)/(2*a);
x1=-b+$;
x2=-b-$;
printf("x1=%.2f\n x2=%.2f\n",x1,x2);
两句加上大括号就行了。。。
if只能执行到分号以前,所以加入大括号。另外x1=x2=-b/2*a MS没加小括号
else if(b*b-4*a*c==0)
{x1=x2=-b/(2*a); printf("%.2f,%.2f",x1,x2);}
else $=sqrt(b*b-4*a*c)/(2*a);
{ x1=-b+$;
x2=-b-$;
printf("x1=%.2f\n x2=%.2f\n",x1,x2);
}
还有。。
pre t="code" l="cpp"#include stdio.h
#include math.h
int main()
{
float a, b, c, jud;
printf ("输入二次方程的三个系数(第一个不能为0):");
scanf ("%f %f %f", a, b, c);
jud = b * b - 4 * a * c; //根的判别式
if (jud 0)
{
printf ("该方程有两个不相等的实根:\n");
printf ("x1 = %.2f\n",(-b + sqrt (jud)) / (2 * a));
printf ("x2 = %.2f\n", (-b - sqrt (jud)) / (2 * a));
}
else if (jud == 0)
{
printf ("该方程有两个相等的实根:\n");
printf ( "x1 = x2 = %.2f\n", -b / (2 * a));
}
else
printf ("This equation haven't real root\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
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("请输入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("无解,请重新输入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("输入正确,正在计算....\n");
d = sqrt(e);
x1 = (-b + d)/(2 * a);
x2 = (-b - d)/(2 * a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
return 0;
}
首先你已经很清楚的说明了你这个程序是用C语言写二次函数的,而当a=0时,就不是二次函数了,应该按照一次函数来进行计算,否则 一个数除以0就没有意义了.~
#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;
}