为啥我的是这样的
编了一个求一元二次方程的代码但每次运行出来的都是这个东西,经常运行别的的东西时候也会这样,求大佬帮忙;
代码:
double a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&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);
输入:
3.0,4.0,5.0
输出:
x1=-1.#J
x2=-1.#J
怎么连主函数都没没有{:10_266:} 我按照你的思路写了下,你可以参考下{:10_327:} 你的输入有问题。你自己在纸上写一下你的结果。其实这个方程没有解。你换一个有解的输入就可以了。 file:///C:/Users/%E7%82%BD%E7%BF%BC/Desktop/%5BRFCG%7D%5D9FC%7BL~A0A_H[%252M5.png
把double改成float
还要math.h头文件 #include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&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);
return 0;
}
怎么发图片呀{:10_249:} double对应的scanf里的输入类型应该是%lf,
scanf中%f和%f之间有“,” 本帖最后由 lovely539351 于 2020-4-1 20:39 编辑
scanf("%lf,%lf,%lf",&a, &b, &c);
你输入的时候也要3,4,5这么输入不然输入不正确
你加一个if判断一下disc是大于零还是小于零来判断方程有没有解
页:
[1]