当前位置: 首页 > news >正文

在C++中比大小

关于min()函数和max()函数:

        min()、max()这两个函数如果需要使用,要在程序头文件中加上<algorithm>库就可以使用这个函数了

#include <algorithm>

min()函数是比较数中哪一个数最小,就返回最小的数,而max()函数则是比较数中哪一个数最大,就返回最大的数。

这些函数的原理就是找出这些变量当中的最值并返回,类似于

// 最大
int max(int a, int b){return (a > b) ? a : b;
}
// 最小
int min(int a, int b){return (a < b) ? a : b;
}

函数的使用

        min()、max()函数的使用非常简单,只需要将想要对比的变量放进去就行了,注意:多个数比较时,需要加上大括号,且中间用" , "隔开。举个栗子。

#include <iostream>
#include <algorithm>using namespace std;
int main() {int a = 0, b = 0, c = 0, d = 0;cout << "请输入第1组数据:";cin >> a >> b;cout << "请输入第2组数据:";cin >> c >> d;cout << "第1组最大数:";cout << max(a,b);cout << "      第1组最小数:";cout << min(a,b);cout << "\n\n第2组最大数:";cout << max(c,d);cout << "      第2组最小数:";cout << min(c,d);cout << "\n\n2组数据最大数:";cout << max({a,b,c,d});cout << "      两组数据最小数:";cout << min({a,b,c,d});return 0;
}

这段代码比较了2组数据中的大小,最后输出了两组数据中的最大数。

其他的数据类型

        那么如果我的数据是long long类型呢?可不可以做到一样的效果呢?让我们来试一试。

#include <iostream>
#include <algorithm>using namespace std;
int main() {long long a = 0, b = 0, c = 0, d = 0;cout << "请输入第1组数据:";cin >> a >> b;cout << "请输入第2组数据:";cin >> c >> d;cout << "第1组最大数:";cout << max(a,b);cout << "      第1组最小数:";cout << min(a,b);cout << "\n\n第2组最大数:";cout << max(c,d);cout << "      第2组最小数:";cout << min(c,d);cout << "\n\n2组数据最大数:";cout << max({a,b,c,d});cout << "      两组数据最小数:";cout << min({a,b,c,d});return 0;
}

让我们看看输出效果...

输出效果并没有改变

但如果数据类型太大或者太小,超出了数据范围,那就会有问题了。所以还得在程序中做一个特判。

优化后的程序如下:

#include <cstdio>
#include <algorithm>using namespace std;long long a = 0, b = 0, c = 0, d = 0, big = 9223372036854775807;
bool n = true;bool compare() {printf("请输入第1组数据:");scanf("%lld%lld", &a, &b);printf("请输入第2组数据:");scanf("%lld%lld", &c, &d);if (a != big && b != big && c != big && d != big) {printf("\n第1组最大数:%lld", max(a, b));printf("        第1组最小数:%lld", min(a, b));printf("\n\n第2组最大数:%lld", max(c, d));printf("        第2组最小数:%lld", min(c, d));printf("\n\n2组数据最大数:%lld", max({a, b, c, d}));printf("        2组数据最小数:%lld", min({a, b, c, d}));return true;} else {printf("数据过大!请重新输入\n\n\n");return false;}
}int main() {while (n)if (compare()) n = false;return 0;
}//long long类型最大能存储的值9223372036854775807

这个代码如果输入的值小于9223372036854775807,那么n为false,那么while循环终止,程序也就结束了

此外,其他的数据类型也可以用max或min来进行比较,比如float、double还有char类型,此处需注意的是,比较char是比较其ASCII码的数值大小

如果数据更大,需要用到高精度来进行比较,那么此时的两个函数虽然可以用到,但是因为高精度是用字符串实现的,所以这两个函数的用处并不大


http://www.mrgr.cn/news/55613.html

相关文章:

  • Spring AI 整体介绍_关键组件快速入门_prompt_embedding等
  • 智能安全配电装置在老旧建筑防火中的应用
  • el-table表格里面有一条横线
  • k8s 配置私有镜像仓库认证
  • 探究互联网数字化商品管理变革:从数据化到精准运营的路径转型
  • 【智能大数据分析 | 实验三】Storm实验:实时WordCountTopology
  • 嵌入式开发学习——c语言完结
  • 10.21 IO进程直接的通信
  • .mkp勒索病毒攻击全攻略:防护、数据恢复与安全建议
  • LC:动态规划-买卖股票
  • IPv4头部和IPv6头部
  • Lua中的goto语句
  • ZYNQ:流水灯实验
  • .net framework3.5sp1runtime组件怎么开启
  • Python Web 框架中 Django 框架
  • Java面试题五
  • AB包资源管理器
  • CISP/NISP二级练习题-第一卷
  • c语言typedef的使用 Java短路逻辑运算符
  • Linux 查看进程内存占用的 6 种方法,建议点赞收藏备用,排查问题好帮手
  • 详解23种设计模式——第二部分:结构型模式
  • 计算机基础 -- 计算机补码的原理
  • 数据库中`cast(x as type)` 或 `convert(type, x)` 函数的处理
  • Git合并多个分支中的提交内容
  • 用PYTHON可视化分析热门MEMECOIN的代码思路参考。
  • boost搜索引擎