40、<简单>求N个整数的平均数、众数和中位数

40、<简单>求N个整数的平均数、众数和中位数

#include <iostream> #include <algorithm> #include <iomanip> using namespace std; int main() { cout << "输入规则:" ; cout << "第1行:整数N,5 ≤ N ≤ 10000" << endl; cout << "第2行:N个0~100之间的整数,空格分隔" << endl; int N; cout << "请输入数字个数N:"; cin >> N; int arr[10005]; int cnt[101] = { 0 }; // 数字范围0~100,统计每个数出现次数 double sum = 0; cout << "请输入" << N << "个整数:"; for (int i = 0; i < N; i++) { cin >> arr[i]; sum += arr[i]; cnt[arr[i]]++; } // 1. 计算平均数 double avg = sum / N; // 2. 找众数(题目保证唯一最多) int mode = 0, maxCnt = 0; for (int i = 0; i <= 100; i++) { if (cnt[i] > maxCnt) { maxCnt = cnt[i]; mode = i; } } // 3. 排序求中位数 sort(arr, arr + N); double mid; if (N % 2 == 1) { // 奇数个:正中间元素 mid = arr[N / 2]; } else { // 偶数个:中间两个平均值 mid = (arr[N / 2 - 1] + arr[N / 2]) / 2.0; } // 输出结果 cout << fixed << setprecision(2); // 保留两位小数输出浮点 cout << "平均数:" << avg << endl; cout << "众 数:" << mode << endl; cout << "中位数:" << mid << endl; return 0; }