目录
感谢你能看到这里,你的点赞收藏是我的动力,如果你用上了这篇文章,那么能不能给一个点赞和收藏?谢谢你啦!!!
感谢:
我最近发布的文章洛谷P1706 全排列问题和迷宫之判定刚发布没多久就收到了点赞和收藏,我在此感谢你们的点赞收藏,谢谢你们!!!我真的很高兴,接下来切入正文!
关于min()函数和max()函数:
min()、max()这两个函数如果需要使用,要在程序头文件中加上<algorithm>库或者<cmath>库,就可以使用这个函数了
#include <cstdio>
#include <iostream>
#include <algorithm>//或者#include <cmath>
min()函数是比较数中哪一个数最小,就返回最小的数,max()函数是比较数中哪一个数最大,就返回最大的数。
函数的使用
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