该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
程序里错误很多,我帮你该了一下:
#include
#include
float x1,x2,a,b,c,t,p,q;
int main()
{
void result1(float,float);
void result2(float,float);
void result3(float,float);
printf("请输入 a,b,c:\n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
printf("要求的方程是:%5.2f*x*x+%5.2f*x+%5.2f\n",a,b,c);
t=b*b-4*a*c;
printf("方程的根是:\n");
if(t>0)
{
printf("方程有两个实根:\n");
result1(a,b);
printf("x1=%f x2=%f\n",x1,x2);
}
else
{
if(t==0)
{
printf("方程有两个相等的实根:\n");
result2(a,b);
printf("x1=%f x2=%f\n",x1,x2);
}
else
{
printf("方程有两个复数根:\n");
result3(a,b);
printf("x1=%f+%fi x2=%f-%fi\n",p,q,p,q);
}
}
}
void result1(float a,float b)
{
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
}
void result2(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void result3(float a,float b)
{
p=-b/(2*a);
q=sqrt(t)/(2*a);
}
可以编译过,至于算的对不对我就不知道了,这个要看你的算法