分支结构 -- 2015/09/23

来源:互联网 发布:超图软件股吧 编辑:程序博客网 时间:2024/06/04 23:22
    /**     *  输入三个数,用两种方法打印出中间值(即第二大值) 提示:第一种,先求最大最小;第二种,只使用条件运算符     */        int a = 0;    int b = 0;    int c = 0;//  int  result = 0;    printf("输入三个数:");    scanf("%d,%d,%d", &a, &b, &c);//  result = ( a > b) ? ( a < c ? a : ( b > c ? b : c ) ): ( b < c ? b : ( a > c ? a : c ));//  printf("中间值为%d", result);    if ((a > b && a < c) || (a < b && a > c)) {        printf("中间值为%d", a);    } else if ((b > a && b < c) || (b < a && b > c)) {        printf("中间值为%d", b);    } else {        printf("中间值为%d", c);    }       /*    int nums[3];    printf("输入三个数:\n");    for (int i = 0; i < 3; i++) {        scanf("%d", &nums[i]);    }    for (int i = 0; i < 2; i ++) {        for (int j =  0; j < 2; j ++) {            if (nums[j] > nums[j + 1]) {                int t = nums[j];                nums[j] = nums[j + 1];                nums[j + 1] = t;            }        }    }    printf("中间值为%d", nums[1]);    */

注意:(条件表达式)
在三个数中输出中间值时,使用条件表达式:
result = ( a > b) ? ( a < c ? a : ( b > c ? b : c ) ): ( b < c ? b : ( a > c ? a : c ));
分析::
首先,判断a 和 b 的大小, 
if(a>b)==>再判断a 和 c==>if(a<c)==>c>a>b
                                      |=>if(a>c)==>比较b 和c 的值
if(b>a)==>再判断b 和 c==>if(b<c)==>c>b>a
                                      |=>if(b>c)==>比较a 和c 的值

1 0
原创粉丝点击