计算机C语言

#include<stdio.h>
void main()
{ int a,b,c,x;
a=b=c=0; x=35;
if(!a)
x--;
else if(b);
if (c)
x=3;
else
x=4;
printf (〞%d\n〞,x);
}

if后面括号里的表达式是什么意思啊?

#include<stdio.h>
  void main()
 {   int  a,b,c,x;
      a=b=c=0; x=35;//赋值
     if(!a)//因为上面赋值的a=0,所以!a就是if(!(a==0)) 不就是if(a=0)
         x--;//自减
        else   if(b) //(这句话本身是错的,应该去掉“;”)就是在b=0的条件下执行下一步
     if (c)//这里是一个嵌套,是在上面b=0成立的情况下再做的,这句要求c=0
         x=3;
     else //如果c不等于0就做这个
         x=4;
     printf (〞%d\n〞,x);
}


整体分析:

第一次条件判断是成立的,所以结果是34


我发现有一个分号也可以做的。

if后面括号里的表达式可以为真,可以为假;

表达式的值等于0,表示为假;

表达式的值不等于0,表示为真;

这样想的话,条件中都是0,所以都是假,答案是4

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-28

if后面括号里的表达式可以为真,可以为假;

表达式的值等于0,表示为假;

表达式的值大于0,表示为真;

为真即执行接下来的语句,为假就执行else后面的语句.

你这个例子中c的值为0,就是说为假;所以x=4,输出的结果是4.

本回答被提问者采纳
第2个回答  2013-08-28
if(!a)
!a的意思是当a=0时,!a=1,if语句成立执行,当a≠0即a为非0数时,!a=0,if语句不执行
if(c)
这个跟上面的刚好相反,c=0时,if语句不执行,c≠0时,if语句执行

总之if语句的判断为真或假,而c中0为假,非0均为真,只是默认!0=1罢了,顺便说下!的意思是取反
第3个回答  2013-08-28
!a等价于a==0,是一个逻辑判断,判断a是否等于0,若等于0执行x--;b等价于b!=0,若b不等于0,执行空操作。if(c)类似,若c不等于0,执行x=3。
第4个回答  2013-08-28
if(!a) : a 等于0的时候 !a 为真 条件成立 执行后面的语句!

if (c) : c 为非0的时候 条件为真 执行后面的语句!
相似回答