C++ 计算中位数代码示例
C++ 计算中位数代码示例
中位数是指一组数字按照大小排序后,最中间的那个数的值。如果数字个数为偶数,则中位数为最中间两个数的平均值。
例如:
- 2, 5, 8, 1, 6 排序后为 1, 2, 5, 6, 8,中位数为 5。
- 8, 9, 1, 2, 3, 0 排序后为 0, 1, 2, 3, 8, 9,中位数为 (2+3)/2=2.5
代码实现
以下是用 C++ 编写的代码,实现了计算中位数的功能:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
double findMedian(vector<int>& nums) {
sort(nums.begin(), nums.end()); // 对数组进行排序
int n = nums.size();
if (n % 2 == 0) { // 如果数组长度为偶数
return (nums[n / 2 - 1] + nums[n / 2]) / 2.0; // 返回中间两个数的平均值
} else { // 如果数组长度为奇数
return nums[n / 2]; // 返回中间的数
}
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
double median = findMedian(nums);
cout << fixed << setprecision(1) << median << endl;
return 0;
}
代码解析
- 包含头文件:
iostream用于输入输出,vector用于使用动态数组,algorithm提供排序函数sort,iomanip用于格式化输出。 - 输入数据: 通过
cin读取输入的整数n表示数字个数,然后循环读取n个数字并存储到vector<int>类型的数组nums中。 - 计算中位数: 调用
findMedian函数计算中位数。 findMedian函数:- 使用
sort函数对数组进行排序。 - 判断数组长度是否为偶数,如果是则返回中间两个数的平均值,否则返回中间的数。
- 使用
- 输出结果: 使用
cout输出计算得到的 中位数,并使用fixed和setprecision来保留一位小数。
代码说明
这段代码首先通过 cin 读取输入的整数 n,表示有 n 个数。然后通过循环读取 n 个数的值,并将它们存储在一个 vector<int>类型的数组 nums 中。
接下来,调用 findMedian 函数来计算中位数。在这个函数中,首先使用 sort 函数对数组进行排序,然后根据数组的长度是奇数还是偶数来计算中位数。如果数组长度为偶数,则返回中间两个数的平均值;如果数组长度为奇数,则返回中间的数。
最后,使用 cout 输出计算得到的中位数,并使用 fixed 和 setprecision 来保留一位小数。
希望这段代码能够帮助你理解如何使用 C++ 计算中位数!
原文地址: https://www.cveoy.top/t/topic/qrs6 著作权归作者所有。请勿转载和采集!