A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 叮当 于 2014-9-11 20:33 编辑

后面的max与C为交换为什么就不能求出最大的值了?

屏幕快照 2014-09-04 14.35.16.png (26.16 KB, 下载次数: 114)

为什么不能那样写

为什么不能那样写

9 个回复

倒序浏览
int dmx=max>c?c:max;三目运算,如果这样写,max>c是正确的则返回c,我们要求的是最大值,显然c不是最大值,int dmx=max>c?max:c;这个顺序写的话,所求的结果就对了。这应该是三目运算的书写顺序,这样写也行int dmx=c>max?c:max; 只是一个书写顺序问题!
回复 使用道具 举报
1  你用的是三目运算     (条件) ?  (数值1) :(数值2);   
    1   如果条件成立,输出数值1
    2   条件不成立,输出数值2
2  int a   =100,b= 150,c = 200;
     int dmx   =   max  > c  ?  max : c   
     1  其中max > c   是条件    ,如果成立 就输出max   ,如果不成立就输出c
     2  如果max > c  ,成立的话,就说明max就比c 大了,如果你max与c调换了位置,那样就算成立了,输出c,输出的值是最大值吗??? ,把小的输出来了把
回复 使用道具 举报
你还没搞懂三目运算符的格式。  ?号前面条件成立 输出冒号前面的,不成立输出冒号后面的
回复 使用道具 举报
max>c ? max : c 意思是max>c成立的话,输出max,否则输出c
回复 使用道具 举报
优先级不对
回复 使用道具 举报
楼上都是正解啊
回复 使用道具 举报
修改代码
int max;
a>b?max=a :max=b ;
max>c?max:max=c ;
printf("max=%d ",max );
回复 使用道具 举报
flypig 中级黑马 2014-9-27 15:41:18
9#
注意细节,细节很重要
回复 使用道具 举报
三木运算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马