#include #include #include #include #include

using namespace std;

int main() { int n; cin >> n;

vector<int> nums(n);
for (int i = 0; i < n; i++) {
    cin >> nums[i];
}

// 平均数
double sum = 0;
for (int num : nums) {
    sum += num;
}
double average = sum / n;

// 众数
map<int, int> count;
int maxCount = 0;
for (int num : nums) {
    count[num]++;
    maxCount = max(maxCount, count[num]);
}
vector<int> modes;
for (auto it = count.begin(); it != count.end(); it++) {
    if (it->second == maxCount) {
        modes.push_back(it->first);
    }
}

// 中位数
sort(nums.begin(), nums.end());
double median;
if (n % 2 == 1) {
    median = nums[n / 2];
} else {
    median = (nums[n / 2 - 1] + nums[n / 2]) / 2.0;
}

cout << fixed << setprecision(2) << average << " ";
for (int mode : modes) {
    cout << mode << " ";
}
cout << fixed << setprecision(1) << median << endl;

return 0;
描述求N个整数的平均数众数和中位数。 小知识: 众数 如有9个数:17 13 17 9 17 17 3 16 17 17出现的次数最多即为这组数的众数。 中位数 如有9个数:102 170 96 90 97 106 110 182 100 将这9个数按一定的顺序从大到小或从小到大排列后得到: 182 170 110 106 102 100 97 96 90 正中间的一个数是102102

原文地址: https://www.cveoy.top/t/topic/iGDa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录