用VS2010编写C语言,我这段代码错误在哪

int a=5,b=4,c=3;
int s,t;
if(a>b>c) s=a;
else s=0;
t=(a-c>c+2==0);
printf("s=%d,t=%d\n",s,t);
是格式错了,还是哪里错了?
你不用告诉我什么意思,我是从视频里看到的,视频老师给的就是这段代码,意思我也知道。if(a>b>c) s=a; else s=0;这两句的意思是判断a>b是否为真,真为1,再判断1>c是否为真,是就将a的值给s,不是就将0赋给s;t的结果是1,懒得解释,我要的问的是我这些代码为什么在vs2010里为什么会编译错误不通过。

第1个回答  2013-07-04
if(a>b>c) ,就是if((a>b)>c) ,a>b的结果不是1,就是0,所以这个if条件肯定为假,那么s肯定=0.并且t=(a-c>c+2==0)改为t=((a-c>c+2)==0),这个括号内就变成0==0,为真,t应该=1;
第2个回答  2013-07-04
if(a>b>c) 不能这么写

应该写成 if(a>b && b>c)
第3个回答  2013-07-05
这个没有啥问题,是不是VS2010对之前的版本写的程序的支持问题。或者某些语言,函数支持的问题。不知道在低版本VS上运行会不会有什么问题!本回答被提问者采纳
第4个回答  2013-07-04
不过不知道你是刚学呢,还是一个另类高手。
程序编译和运行肯定没错
对于a>b>c首先是比较a>b,然后把比较的结果同c比较
对于t=(a-c>c+2==0),这就需要看看运算符优先级了。
很明显结果s=0,t=1
第5个回答  2013-07-04
a-c>c+2==0改成(a-c>c+2)==0试试
相似回答