如果让你不能用">、<、>=、<=“等条件运算符,直接使用C语言求出三个整数的最小值,你会吗?是不是第一眼觉得挺简单的,但是仔细一想却不会了。今天编程学习网就带大家了解一下如何实现
代码实现:
int min(int a, int b, int c) { return ((a - b) >> 31) && ((a - c) >> 31) ? a : (b - c) >> 31 ? b : c; } int main() { int a, b, c; scanf("%d%d%d",&a,&b,&c); int m = min(a, b, c); printf("%d\n", m); system("pause"); return 0; }首先要了解 一个有符号整数向右移31位得到的应该是符号位,&&是逻辑位运算 故对于((a - b) >> 31) && ((a - c) >> 31)判断 a是否是最小值,不是就从b和c中去找最小值。然后就是三目运算符的运行过程了。表达式1?表达式2:表达式3 ,表达式1成立 取表达式2 的值,不成立取表达式3 的值。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/9586/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取