liuzhedash 发布留言 2008-7-11 10:30
程序有问题,大家帮忙解决一下。
void main()
{
float a,b,c,dt,sdt,x1,x2;
printf("input ax^2+bx+c=0 a,b,c");
scanf("%f %f %f",&a,&b,&c);
dt=b*b-4*a*c;
printf ("%f %f %f %f",a,b,c,dt);
if (a=0) printf("Not real E"); else
if (dt<0) printf ("no real roots");
else /*if(dt>1e-6)*/ {x1=(-b+sdt)/(2*a);x1=(-b-sdt)/(2*a);printf("x1=%7.2f,x2=%7.2f",x1,x2);};
getch();
}
求一元二次方程的根,但是显示被零除。
谢谢大家
woshiyun 发布留言 2008-7-11 10:44
if (a=0)
if (a==0)
coming 发布留言 2008-7-11 13:21
恩 a==0
liuzhedash 发布留言 2008-7-11 14:10
我的失误,这样的小问题
liuzhedash 发布留言 2008-7-11 14:26
void main()
{
float a,b,c,dt,sdt,x1,x2;
printf("input ax^2+bx+c=0 a,b,c");
scanf("%f %f %f",&a,&b,&c);
dt=b*b-4*a*c;
printf ("%f %f %f %f",a,b,c,dt);
if (a==0) printf("Not real E");
else if (dt<0) printf ("no real roots");
else if(dt>0) {x1=(-b+sdt)/(2*a);x1=(-b-sdt)/(2*a);printf("x1=%f,x2=%f\n",x1,x2);};
else if (dt==0) {x1=(-b/(2*a));printf("x1=x2=%f",x1);};
getch();
}
那么这个呢?加入了等根的判断,但是else出错了
[ 本帖最后由 liuzhedash 于 2008-7-11 14:32 编辑 [/it]]
liuzhedash 发布留言 2008-7-11 14:39
把else去了就可以了,但是不去为什么不对?
而且统统能够去掉
[ 本帖最后由 liuzhedash 于 2008-7-11 14:48 编辑 [/it]]
切忌浮躁 发布留言 2008-7-11 16:17
写程序注意格式。
/***************************************************************** ** HighlightCodeV3.1 software by yzfy(雨中飞燕) http://yzfy.org ** *****************************************************************/ #include #include int main() { float a,b,c,dt,sdt,x1,x2; printf("input ax^2+bx+c=0 a,b,c"); scanf("%f %f %f",&a,&b,&c); dt=b*b-4*a*c; printf ("%f %f %f %f",a,b,c,dt); if (a==0) printf("Not real E"); else if (dt<0) printf ("no real roots"); else if(dt>0) { sdt=sqrt(dt); x1=(-b+sdt)/(2*a); x2=(-b-sdt)/(2*a); printf("x1=%f,x2=%f\n",x1,x2); } else if (dt==0) { x1=(-b/(2*a)); printf("x1=x2=%f",x1); } getchar(); } |
给你修改了。
liuzhedash 发布留言 2008-7-11 19:56
多谢!麻烦了!
其实我的主要问题是在{}后面加了;
造成else的错误
页: [1]