我需要幫助。 該程序使用gcc進行編譯。但是當我在終端上運行它時,我不知道爲什麼程序是給我等於2個真正的解決方案或2個複雜的解決方案,以0解決二次方程的C程序
與GCC編譯,你必須添加-lm
感謝你的幫助
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int a,b,c;
float x,x1,x2,x2c,x1c,xcb,xba,D;
char i;
x1==(-b+sqrt(D))/(2*a);
x2==(-b-sqrt(D))/(2*a);
x1c==(-b+i*sqrt(-D))/(2*a);
x2c==(-b-i*sqrt(-D))/(2*a);
xcb==-c/b;
xba==-b/(2*a);
D==b*b-4*a*c;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
printf("c=");
scanf("%d",&c);
a*x*x+b*x+c==0;
if(a==0)
{
if(b==0)
{
if(c==0) printf("x belongs to R\n");
else printf("no solutions\n",x);
}
else printf("x= %f \n",xcb);
}
else
{
if(D==0) printf("x= %f \n",xba);
else
{
if(D>0) {printf("2 solutions Real: x1=%f\n x2=%f\n",x1,x2);}
else {printf("2 solutions Complex: x1=%f\n x2=%f\n",x1c,x2c);}
}
}
return 0;
}
這不會使用GCC進行非常好的編譯。請使用(至少)'-Wall'標誌。 – Mat 2012-03-25 16:33:23
爲什麼所有的==?你不想用=指定嗎? – duffymo 2012-03-25 16:34:10
你的代碼可以更清晰。看到這個:http://cstartercodes.blogspot.in/2015/02/solution-of-quadratic-equation.html – 2015-02-12 00:59:28