黑马程序员技术交流社区

标题: 三目运算符 [打印本页]

作者: romeo1990    时间: 2015-1-6 22:07
标题: 三目运算符
#include <stdio.h>

int main()
{
    /*计算两个整数之间的最大值
    int a = 8;
    int b = 11;
    int c = b > a ? b : a ;
    printf("%d\n",c);
     */
    //输出三个整数间的最大值
    int a = 10;
    int b = 50;
    int c = 30;
    int abMax = b > a ? b : a;//先找出a、b之间的最大值
    int Max = abMax > c ? abMax : c;
    printf("最大值是%d\n",Max);
    return 0;
}


作者: 仰望的繁华    时间: 2015-1-11 13:40
如果相等呢?
作者: romeo1990    时间: 2015-1-11 19:40
仰望的繁华 发表于 2015-1-11 13:40
如果相等呢?

那肯定就输出一样的值啊,就没有大小之分了呗
作者: shicuf    时间: 2015-1-11 21:08
这是想说明什么?
作者: 仰望的繁华    时间: 2015-1-11 21:50
romeo1990 发表于 2015-1-11 19:40
那肯定就输出一样的值啊,就没有大小之分了呗

可是你让它选择的 只有 大于号  是否为真啊~
作者: romeo1990    时间: 2015-1-12 11:04
仰望的繁华 发表于 2015-1-11 21:50
可是你让它选择的 只有 大于号  是否为真啊~

b > a如果是假,那不就输出a咯
作者: 仰望的繁华    时间: 2015-1-12 14:28
romeo1990 发表于 2015-1-12 11:04
b > a如果是假,那不就输出a咯

袄,是啊~
我脑袋没转过来...
作者: 浅听    时间: 2015-1-12 18:29
还不错  这样挺节省代码数量
作者: liu1170486003    时间: 2015-1-16 00:57
额,本来记得整型的数是可以直接放进判断条件里去的,但是忘记了怎么判断整型数的bool值是真还是假,以为大于0就是真,小于0就是假了呢,然后自己写了一下,发现不对,然后突然想起来,在C里面int值非零即为真了,也是罪了,折腾这么半天。本来以为这样写可以省个变量空间的,没想到白忙活了。(话说技术分就赞助啊啊)



  1. <P> </P>
  2. <P>#include <stdio.h></P>
  3. <P>int main()
  4. {
  5.   //输出三个整数间的最大值
  6.     int a = 10;
  7.     int b = 50;
  8.     int c = 30;
  9.     //int abMax = b > a ? b : a;//先找出a、b之间的最大值
  10.     //int Max = abMax > c ? abMax : c;
  11.     printf("值是%d\n", ((a = (a-b) ? a : b) - c) ? a : b);
  12.   
  13. return 0;
  14. }
  15. </P>
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2