编译一个c++输入五个数以空格分隔找出最接近且不大于平均数的数
以下是代码:
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int main() {
vector<int> nums(5);
int sum = 0;
for (int i = 0; i < 5; i++) {
cin >> nums[i];
sum += nums[i];
}
double avg = sum / 5.0;
int closest = -1;
for (int i = 0; i < 5; i++) {
if (nums[i] <= avg) {
if (closest == -1 || abs(nums[i] - avg) < abs(closest - avg)) {
closest = nums[i];
}
}
}
if (closest != -1) {
cout << closest << endl;
} else {
cout << "No number is less than or equal to the average." << endl;
}
return 0;
}
代码解释:
首先,我们使用 vector 存储输入的五个数,并计算它们的和。然后,我们计算平均数,并初始化一个变量 closest 为 -1,表示暂时没有找到符合条件的数。
接下来,我们遍历 nums 数组中的每个数,如果该数小于等于平均数,那么就判断它是否比当前找到的最接近平均数的数更接近平均数。如果是,就更新 closest。
最后,我们检查是否找到了符合条件的数。如果找到了,就输出 closest。否则,输出一条消息表示没有找到符合条件的数
原文地址: https://www.cveoy.top/t/topic/eoot 著作权归作者所有。请勿转载和采集!