题目信息:
目的:要选出与h1身高最接近的、较矮的一方
矮个优先原则,先将h2、h3、h4从小到大排序
依次计算身高差,并保存最小身高差对应的身高答案
解题逻辑:
#include <bits/stdc++.h>
using namespace std;
int main(){
int h1,h2,h3,h4;
cin>>h1>>h2>>h3>>h4;
// 先确定 h2<h3<h4 从矮到高
if(h2>h3) {
int t=h2;
h2=h3;
h3=t;
}
if(h2>h4) {
int t=h2;
h2=h4;
h4=t;
}
if(h3>h4) {
int t=h3;
h3=h4;
h4=t;
}
int c=h1-h2,ans=h2; // 假设答案是h2,c为高度差
if(c<0) c=0-c; // 保证身高差为正数
int d=h1-h3,e=h1-h4; // 计算另外两名同学身高差
if(d<0) d=0-d;
if(e<0) e=0-e;
if(d<c){
ans=h3;
c=d;
}
if(e<c){
ans=h4;
c=e;
}
cout<<ans;
return 0;
}