#include <stdio.h>
#include <math.h>
void main() {//输入一元二次方程的系数a,b,c,输出解x1,x2;
double a,b,c,q,x,y;
printf("请输入一元二次方程ax2+bx+c=0的系数abc,用逗号隔开\n");
scanf("a%lf,b%lf,c%lf",&a,&b,&c);
q = sqrt(b*b-4*a*c);
x = (-b-q)/(2*a);
y = (-b+q)/(2*a);
printf("解为x1=%lf,x2=%lf\n",x,y);
}
我在网上查了资料,说是可能原因1.除数为0,2.数据溢出
应该不是原因1吧,如果是数据溢出的话,能不能解释一下什么是数据溢出呢?
我感到奇怪的就是,我输入的是1,2,1.还是出现这个1.#ind00..
好像输入任何数都是这个..
vc6下编译的..抓狂
呃,我是定义的x和y当做x1和x2的啊
printf里面的x1和x2是输出的内容..
但是我输入任何数值都出现错误啊..
追答q = sqrt(b*b-4*a*c);
printf("1111\n");
x = (-b-q)/(2*a);
printf("2222\n");
y = (-b+q)/(2*a);
printf("3333\n");
你看屏幕上会显示什么?
1111
2222
3333呃..
printf("解为x1=%15.2f,x2=%15.2f\n",x,y);用这句试试,应该是这句话错了
追问运行了还是不对,你用vc6试试,不会是我的编译软件坏了吧?
追答你的报错信息写全给我看看
追问完全不报错,但是运行的时候,结果为
解为x1=-1.#IND00,x2=-1.#IND00