为了账号安全,请及时绑定邮箱和手机立即绑定

如果在c语言中打else后显示expected expression ,这是什么情况?

如果在c语言中打else后显示expected expression ,这是什么情况?

人到中年有点甜 2021-11-24 15:11:24
#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;}


查看完整回答
反对 回复 2021-11-28
?
HUX布斯

TA贡献1876条经验 获得超6个赞

把ⅰf语句中{}都加上
程序末尾加一句 return 0;

查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 1116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信