本题要求不能使用if, while, switch, for, ?: 以 及任何的比较语句,也就是要求我们不能用常规的方法来判断两个数的大小。

那么按照以往的方法,要判断两个数的大小,应该要将两个数进行减法运算,将结果与0进行比较。那现在不行进行比较,我们应该怎么办?

我们知道变量分为signed 和 unsigned 两种,有符号变量用最高位代表符号位。

  • 当变量值为负数时,变量值的最高位为1,
  • 当变量值为正数时,最高位为0

基于这种特性,我们可以用一个数组保存用于比较的两个数的值。如array[0]=b,array[1]=a;

将a,b做减法运算,并将结果值存放在一个有符号变量中,变量最高位对应的数组元素就是俩个数中较大的那个数。接下来看代码实现

int min(int a, int b)
{int d = a - b;int flag = ((unsigned int)d) >> 31;int array[] = {b, a};return array[flag];
}int main(int argc, char *argv[])
{cout<< min(1, 2) <<endl;cout<< min(2, 1) <<endl;cout<< min(2, 10000)<<endl;cout << "Press the enter key to continue ...";cin.get();return EXIT_SUCCESS;
}

转载于:https://www.cnblogs.com/a-lai/p/7338449.html

编写函数求两个整数 a 和 b 之间的较大值。要求不能使用if, while, switch, for, ?: 以 及任何的比较语句。...相关推荐

  1. 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验案例3:函数的递归调用] 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数. [实验指导] 分析:m.n为两 ...

  2. c语言有参有类最小公倍数,【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数...

    程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...

  3. c语言学习-定义并调用函数求两个整数之差的绝对值

    定义并调用函数求两个整数之差的绝对值 程序流程图: 代码: #include<stdio.h> int fabs(int m ,int n) {int f; f=m-n; if(f< ...

  4. 自定义函数求两个整数的和

    一.自定义函数的构成: 自定义函数就是根据需要自己定义的函数,他的作用就是帮助我们实现我们想实现的功能.在定义函数时,需要注意以下几点: 1.函数名不可忽略.一个函数必须又一个合法的函数名,函数命名时 ...

  5. 使用函数求两个整数的最大公约数和最小公倍数

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p240 习题7 3.编写两个函数,分别求两个整数的最大公约数和最小公倍数 #include<st ...

  6. C语言试题七十三之请编写函数求两个数的最大公约数

    1. 题目 编写函数:求两个数的最大公约数. 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数.几个自然数公有的约数,叫做这几个自然数的公约数.公约数中最大的一个公约数,称为这几个自 ...

  7. 【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数

    程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...

  8. C语言 编写函数求n个整数的和

    编写一个函数sum,求主调函数传递过来的n个整数的和. 要求: 1)输入一个正整数n(n<100): 2)输入n个整数: 3)调用函数sum计算n个整数的和: 4)在主函数中打印所计算结果. 运 ...

  9. mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数

    输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢. #includelongfactorial(intm,intn){longsum=1,sum1=1; ...

最新文章

  1. C++ Multisets
  2. linux中的压缩命令详细解析(一)
  3. html5 audio 获取播放时间,html5 audio 延时获取播放路径播放失败
  4. Vue入门 ---- vue-loader 、vue-cli
  5. 【转载】堆和栈的内存分配
  6. 有没有更好的写v =(v == 0?1:0)的方法; [关闭]
  7. .NET 中的序列化
  8. Ubuntu通用基础教程
  9. 一起学爬虫(Python) — 02
  10. halcon 相似度_怎样用深度学习判断两张图片的相似度?
  11. 微信小程序的wx.chooseImage如何把图片传给后端
  12. GEE——2018 年南非国家土地覆盖( 20 米分辨率多季节 Sentinel 2 卫星图像生成的)
  13. HPET(High Precision Event Timer)简要说明
  14. JIRA REST API调用方式
  15. 计算机网络桂电北海期末题,2078电大《网络信息制作与发布》试题和答案200407...
  16. 数组的常用方法(4)--es3.0:烧脑小练习
  17. 用 Python 自动生成 Excel 数据报表~
  18. 浏览器禁止video视频另存下载
  19. 在Echarts的barChart中,xAxis的axisLabel中,interval参数如何解释?
  20. U盘文件夹全变为.exe格式或U盘文件全部消失(U盘AutoRun病毒解决方法)

热门文章

  1. Kotlin协程使用,协程使用注意事项,协程中的await方法使用|不使用suspend使用协程
  2. 2022-2028年中国环氧结构胶行业市场研究及投资前景预测报告
  3. 2022-2028年中国轻型客车行业投资分析及前景预测报告
  4. 群晖共享文件夹局域网通过SMB本地访问
  5. LeetCode简单题之将找到的值乘以2
  6. AIFramework框架Jittor特性(下)
  7. YOLOv4实用训练实践
  8. 用OpenCV4实现图像的超分别率
  9. 2021年大数据HBase(十三):HBase读取和存储数据的流程
  10. 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)