C语言编程求解

C语言很强的看看这个程序怎么求须根的时候似乎是有点问题,帮忙解决一下!
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc,X1,X2,realpart,imagepart;
printf("请输入方程的系数a,b,c并用逗号隔开:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6)
printf("方程的解是\n:%8.4f",-c/(2*a));
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("该方程有两个相等的实根:%8.4f\n",-b/(2*a));
else
if(fabs(disc)>1e-6)
{
X1=(-b+sqrt(disc))/(2*a);
X2=(-b-sqrt(disc))/(2*a);
printf("该方程有两个不等的实根分别是:%8.4f,%8.4f\n",X1,X2);
}
else
{
realpart=-b/(2*a);
imagepart=sqrt(-disc)/(2*a);
printf("该方程有两个不等的须根分别是:\n");
printf("%8.4f+%8.4fi\n",realpart+imagepart);
printf("%8.4f-%8.4fi\n",realpart-imagepart);
}
}
}

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,disc;
double X1,X2,realpart,imagepart;
printf("请输入方程的系数a,b,c并用逗号隔开:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6)
printf("方程的解是\n:%8.4f",-c/(2*a));
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("该方程有两个相等的实根:%8.4f\n",-b/(2*a));
else
if(fabs(disc)>1e-6)
{
X1=(-b+sqrt(disc))/(2*a);
X2=(-b-sqrt(disc))/(2*a);
printf("该方程有两个不等的实根分别是:%8.4f,%8.4f\n",X1,X2);
}
else
{
realpart=-b/(2*a);
imagepart=sqrt(-disc)/(2*a);
printf("该方程有两个不等的须根分别是:\n");
printf("%8.4f+%8.4fi\n",realpart+imagepart);
printf("%8.4f-%8.4fi\n",realpart-imagepart);
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-19
if(fabs(a)<=1e-6)
printf("方程的解是\n:%8.4f",-c/(2*a));
改成
if(fabs(a)<=1e-6)
printf("方程的解是\n:%8.4f",-c/b);

if(fabs(disc)>1e-6)
改成
if(fabs(disc)>0)
第2个回答  2014-05-19
楼主。

没有错误 但是有警告、

把第一行代码改成:

float a,b,c,disc,realpart,imagepart;
double X1,X2;
相似回答