2026 3 一级1题 题解
2026-05-12 21:42:31
发布于:北京
51阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[4]; // 声明大小为4的数组,下标0-3
int a1; // 目标值
int Max = 200; // 用于记录当前最小差值,初始设为200(足够大的数)
cin>>a1; // 输入目标值a1
// 输入三个数存入a[1], a[2], a[3]
for(int i = 1; i <= 3; i++ ){
cin>>a[i];
}
int id = 0; // 记录最接近a1的数的下标
int best_h = 200; // 记录最接近a1的值
// 遍历三个数,寻找最接近a1的数
for(int i = 1; i <= 3; i++ ){
// 如果当前数与a1的差值更小,更新记录
if(abs(a1-a[i]) < Max){
id = i; // 更新下标
Max = abs(a1-a[i]); // 更新最小差值
best_h = a[i]; // 更新最接近的值
}
// 如果差值相等但当前数更小,也更新记录
// 这是为了处理差值相同时取较小值的情况
else if(abs(a1-a[i]) == Max && a[i] < best_h){
id = i; // 更新下标
Max = abs(a1-a[i]); // 更新最小差值(实际不变)
best_h = a[i]; // 更新为更小的值
}
}
cout<<a[id]; // 输出找到的最接近a1的数
return 0;
}
这里空空如也








有帮助,赞一个