为什么使用三目运算符呢,因为只需一行代码,有可能说这不简洁,对开发者不友好
我反而觉得这样也是可取的,
思路
- a b c 都有可能是中间数(后面有测试)
- 中间数有个特征就是,比最大小——比最小大
- a: b>a&&a>c? c>a&&a>b?
- b: a>b&&b>c? c>b&&b>a?
- c: a>c&&c>b? b>c&&c>a?
- 如果能明白,组合一起就可以了
如果不明白写代码!!,
6次判断
a>b&&b>c?b:a>c&&c>b?c:b>a&&a>c?a:b>c&&c>a?c:c>a&&a>b?a:c>b&&b>a?b:0;
后面那个0是不会被选到的
3次判断
a>b&&b>c||c>b&&b>a?b:a>c&&c>b||b>c&&c>a?c:b>a&&a>c||c>a&&a>b?a:0;
源代码:
#include <stdio.h>
void main(){
int a,b,c,d;
printf("请输入三个整数我将判断那个数是中间数(空格隔开):");
scanf("%d %d %d",&a,&b,&c);
d=a>b&&b>c?b:a>c&&c>b?c:b>a&&a>c?a:b>c&&c>a?c:c>a&&a>b?a:c>b&&b>a?b:0;
// d=a>b&&b>c||c>b&&b>a?b:a>c&&c>b||b>c&&c>a?c:b>a&&a>c||c>a&&a>b?a:0;
printf("%d",d);
}
代码测试
123 | 132 |
---|---|
213 | 231 |
312 | 321 |
最多六种不同顺序