|
发表于 2024-4-16 23:57:59
|
显示全部楼层
本帖最后由 jackz007 于 2024-4-17 01:54 编辑
- #include <stdio.h>
- int main(void)
- {
- int a , b , c , v1 , v2 , v3 ;
- printf("输入 3 个数值:") ;
- scanf("%d%d%d" , & a , & b , & c) ;
- v1 = (a < b && a < c) ? a : (b < a && b < c) ? b : c ; // 找出最小值
- v3 = (a > b && a > c) ? a : (b > a && b > c) ? b : c ; // 找出最大值
- v2 = a + b + c - v1 - v3 ; // 算出中间值
- printf("%d, %d, %d\n" , v1 , v2 , v3) ;
- }
复制代码
编译、运行实况:
- D:\[exercise]\C>g++ -o x x.c
- D:\[exercise]\C>x
- 输入 3 个数值:88 2 35
- 2, 35, 88
- D:\[exercise]\C>x
- 输入 3 个数值:88 35 2
- 2, 35, 88
- D:\[exercise]\C>x
- 输入 3 个数值:35 88 2
- 2, 35, 88
- D:\[exercise]\C>
复制代码
采用数组的版本:
- #include <stdio.h>
- int main(void)
- {
- int d[256] , e[256] , i ;
- printf("输入 3 个数值:") ;
- scanf("%d%d%d" , & d[0] , & d[1] , & d[2]) ;
- for(i = 0 ; i < 3 ; i ++) e[i] = 0 ;
- for(e[0] = e[2] = 0 , i = 1 ; i < 3 ; i ++) {
- if(d[i] < d[e[0]]) e[0] = i ; // 找到最小值的索引
- if(d[i] > d[e[2]]) e[2] = i ; // 找到最大值的索引
- }
- e[1] = 3 - e[0] - e[2] ; // 算出中间值的索引
- printf("%d, %d, %d\n" , d[e[0]] , d[e[1]] , d[e[2]]) ;
- }
复制代码 |
|