猿问

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

#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);
}

人到中年有点甜
浏览 1156回答 2
2回答

繁星coding

错误并不只是出在你说的这一行。C、C++等C语言系列,提示错误的行并不一定是出现错误的行,而是无法继续执行的行。程序非常混乱,格式不正确,逻辑也有问题。直接把你的程序改了一下:#include&nbsp;<iostream>#include&nbsp;<math.h>using&nbsp;namespace&nbsp;std;int&nbsp;main(){float&nbsp;a,b,c,x1,x2,delta;cin>>a>>b>>c;delta=b*b-4*a*c;if(delta<0)cout<<"方程没有实数根";else&nbsp;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&nbsp;0;}

HUX布斯

把ⅰf语句中{}都加上程序末尾加一句 return 0;
随时随地看视频慕课网APP

相关分类

CSS3
AngularJS
我要回答