#include <iostream>#include <math.h>using namespace std;int main(int argc, const char * argv[]){int a,b,c;float x1,x2;float delta;cin>>a>>b>>c;delta=b*b-4*a*c;if(delta<0)printf("次方程没有实数根");else if(delta==0)x1=(-b+(float)sqrt(b*b-4.f*a*c))/(2.f*a);printf("方程存在两个相同的实数根:%f\n",x1);else/*就是这个else后面总是显示expected expression*/x1=(-b+(float)sqrt(b*b-4.f*a*c))/(2.f*a);x2=(-b-(float)sqrt(b*b-4.f*a*c))/(2.f*a);printf("\nx1=%lf,x2=%lf",x1,x2);}
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
错误并不只是出在你说的这一行。C、C++等C语言系列,提示错误的行并不一定是出现错误的行,而是无法继续执行的行。程序非常混乱,格式不正确,逻辑也有问题。直接把你的程序改了一下:
#include <iostream> #include <math.h> using namespace std; int main() { float a,b,c,x1,x2,delta; cin>>a>>b>>c; delta=b*b-4*a*c; if (delta<0) cout<< "方程没有实数根" ; else if (delta==0) { x1=(-b+( float ) sqrt (b*b-4.f*a*c))/(2.f*a); cout<< "方程存在两个相同的实数根:" <<x1; } else { x1=(-b+( float ) sqrt (b*b-4.f*a*c))/(2.f*a); x2=(-b-( float ) sqrt (b*b-4.f*a*c))/(2.f*a); cout<< "x1=" <<x1<< "," << "x2=" <<x2; } return 0; } |
- 2 回答
- 0 关注
- 1155 浏览
添加回答
举报
0/150
提交
取消