main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d\n”,

main()

int a=5,b=4,c=3,d=2;
if(a>b>c)
printf(“%d\n”,d);
else if((c-1>=d)==1)
printf(“%d\n”,d+1);
else
printf(“%d\n”,d+2)

为什么编译时有错,无结果?

计算首先进入第一个if,判断a>b正确,则为1,继续判断1>c,错误,整个式子值为0,所以不执行下面的语句,进入else if,(c-1>=d)正确,则为1 ,继续判断1==1正确,则执行printf(“%d\n”,d+1);输出为3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-02
应该是if的嵌套
if(a>b) //这一步不满足,程序跳过
if(b<c)
printf("%d",d+++1);
else //不知道你的else写在哪里,如果跟if(b<c)匹配,那么else程序是不会走的,如果跟第一个if匹配结果有了,下面有
printf("%d",++d+1);
printf("%d\n",d);
运行结果:
2
第2个回答  2012-03-24
void main()
{

int a=5,b=4,c=3,d=2;
if(a>b&&b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}本回答被提问者采纳
第3个回答  2017-12-14
字符是中文 最后一个print少分号
第4个回答  2012-03-23
运行结果:3
相似回答