缘空Lee 发表于 2018-12-16 19:31:25

c语言新手

#include <stdio.h>
voidmain()
{
   int a=5,b=4,c=3,d;
   d=(a>b>c);
   printf("%d\n",d);
}


为什么这个输出是0呢,在线等,挺急的!!!!!!!!!!!!!!!!!!!!!!!!!!!

TyCk 发表于 2018-12-16 19:39:50

d=(a>b>c);
这是啥意思?想要干什么? {:10_245:}{:10_245:}{:10_245:}

gary冥霧 发表于 2018-12-16 20:51:08

本帖最后由 gary冥霧 于 2018-12-18 21:34 编辑

C語言是無法同時判斷a>b>c這件事{:9_222:} ,他是先判斷a>b然後,如果a>b是對的那就會給一個非0的數值給b{:9_228:} ,反之就是0{:9_230:} ;然後再用剛才的質去比b>c(這裡的b是剛剛a>b給的質)這件事,但因1不大於3所以會給一個質0給d,這就是為何d=0的原因{:5_105:}
因該要寫

#include <stdio.h>
voidmain()
{
   int a=5,b=4,c=3,d;
   if(a>b&&b>c);
   d=1;
   printf("%d\n",d);
}

ba21 发表于 2018-12-16 20:51:18

c 没有(a>b>c这种写法
a>b && b <c

13155416650 发表于 2018-12-17 16:15:51

a>b后式子为真值为1,1>3为假返回0
页: [1]
查看完整版本: c语言新手