题目描述
给定三个整数,请你找出它们中的最大值。
下列公式可能对你有所帮助:
输入格式
输入占一行,包含三个整数。
输出格式
输出格式为“X eh o maior”,其中X为三个数中的最大值。
数据范围
输入样例:
7 14 106
输出样例:
106 eh o maior
看完第一句话,脑海中第一反应就是:if语句啊
算法1
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,max;
cin>>a>>b>>c;
if(a>b)
if(a>c)
max=a;
else
max=c;
else
if(b>c)
max=b;
else
max=c;
cout<<max<<" eh o maior";
return 0;
}
果然,运行也能通过
不过看到第二句话就有点不明所以了,这个公式是啥,为啥它能求出两个数的最大值!!(数学太菜)
不过感觉通过这个公式把数带入就能 求出两个数的最大值,那就带吧
算法2
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,max;
cin>>a>>b>>c;
max=(a+b+abs(a-b))/2;
max=(max+c+abs(max-c))/2;
return 0;
}
下面就来说一下这个公式为什么就能求出来两个数的最大值:
当a>=b时,max(a,b)=(a+b+a-b)/2=a;
当a<b时,max(a,b)=(a+b+b-a)/2=b;
其实还一个求两个数最小值的公式:
min(a,b)=(a+b-abs(a-b))/2;
看别人的题解时,发现C++中有专门求两个数最大值最小值的函数,即algorithm头文件下的的max()、min()
算法3
#include <iostream>
#include <algorithm>///一定要写这个头文件
using namespace std;
int main(){
int a,b,c;
int max1 = 0;
cin>>a>>b>>c;
max1 = max(a,b);///调用库函数max
max1 = max(max1,c);
cout<<max1<<" eh o maior"<<endl;
return 0;
}
(https://www.acwing.com/solution/content/9187/)
注:
- 有人说不用algorithm头文件也能运行出max()、min(),那是只针对个别编译器。
- 网上有人说,做牛客网的在线编程题,有道题用到了max函数,发现了一个小坑,比如max(a,0)时,若a是long long 类型,就会报错,需要将0改成0ll.(https://www.cnblogs.com/yy-moon/p/11205057.html)
有人可能有疑惑
是个什么东西,这里解答一下,这个被叫做万能头文件(但不是所有编译器都原生支持,比如VS系列)
这个库内起码包含了
Great, thanks
借楼,一行就行:cout<<max(max(a[0],a[1]),a[2])<<” eh o maior”;
你这属于是小牛踩电线,牛逼带闪电!!!
6666,缝合怪是吧
NB
这样简洁
算法2里面输出cout没写啊
习惯万能头的我
哈哈哈😏
哈哈我刚学会万能头
#include[HTML_REMOVED]
using namespace std;
int main()
{
int a,b,c,i,max;
cin>>a>>b>>c;
int p[i]={a,b,c};
max=a;
for(i=0;i<3;i++)
{
if(p[i]>max)
{max=p[i];}
}
printf(“%d eh o maior”,max);
}
也可以试试这样子
#include[HTML_REMOVED]
#include[HTML_REMOVED]
using namespace std;
int max(int a,int b)
{
return (a+b+abs(a-b))/2;
}
int main()
{
int a,b,c;
scanf(“%d%d%d\n”,&a,&b,&c);
printf(“%d eh o maior\n”,max(a,max(b,c)));
}
为什么算法三要初始化max1=0?不初始化可以吗 直接int max1
可以的
为什么我的算法三运行出错了?max函数不起作用?求大佬告诉
6
对于一个以前学过过一年现在捡起来的人来说,直觉是max函数,但是居然报错(原来是里面只能有俩个,我填了3个),if又写的烦,遂用sort排序百度一下那一行写法sort(n,n+l)没错只记得排序,不及得写法。yxc的课没说max函数,但我又记得有,感谢解惑。
这题如果用cstdio头文件的话是不是还要加cmath才能用abs函数?
xiexiedalao
谢谢
bit
#include[HTML_REMOVED]万能头yyds
这个跟 # include [HTML_REMOVED]这个万能头有什么区别
清晰明了啊,居然学会了
6啊6啊,谢谢