一元二次方程求解编程错误,求指导!
#include<stdio.h>
#include<math.h>
void main()
{
double a, b, c, p, q, x1 ,x2, disc;
scanf("a=%lf,b=%lf,c=%lf", &a, &b, &c);
disc = b*b-4*a*c;
p = -b/(2*a);
q = sqrt(disc)/(2*a);
x1 = p + q;
x2 = p - q;
printf("\nx1=%5.2f\nx2=%5.2f\n",x1, x2);
}
结果怎么是这样子,求指教,顺便问一下“x1=%5.2f”中的5.2f什么意思
file:///C:/Users/Administrator/Desktop/QQ截图20120329233207.png
飞不高的蚂蚁 发表于 2012-3-29 23:42 static/image/common/back.gif
结果如下:
1,2,1
你又没有说你当时输入的是什么,如果你输入的数字会导致方程无解,那么就会出现计算上的一系列错误,就像你用scanf的%d控制符,确输入一个英文字母时,程序可能会立即陷入死循环,%5.2f是以float型输出,输出宽度至少5(也就是说输
出的数宽度大于5,可以超过5这个宽度。而是代表其中小数部分是宽度2) 结果如下:
1,2,1
x1=-1.#J
x2=-1.#J
谢谢各位鱼友啦!!{:1_1:}
结果真确呀,什么情况 ? 输出一个域宽是5,小数位数是2的一个float型数据 一元二次方程有解的条件是什么。。。。x2+2x+1 = 0
判别式要大于等于0你判断了么、、负数开平方出来是什么? 楼上正解,,可以参考,, 楼主你输入时应该是a=1,b=2,c=1,还有要判断方程是否有根 谢谢各位的解答!:handshake 输入值的时候注意数据输入格式。。。。 谢谢bisoo
:D一楼对了;应该 看不见你的图片不过表示,要固定输入,因为用sqrt,如果你前面乱输入会导致sqrt处理一个负数,当然会出现别的结果了,还要scanf里面居然有a= b=c=汗呢,谁告诉你有这种奇葩的格式的
页:
[1]