给定一个未排序数组的数组,任务是计算未排序数组的平均值和中位数。
计算平均值以求出平均值。我们可以使用给定的公式找出均值
平均值=(数组中所有元素的总和)/(元素总数
如果对数组进行排序,则在数组中元素数为奇数的情况下,并且当数组中元素数为偶数时,中位数是数组的中间元素,它将是两个中间元素的平均值。
如果未对数组进行排序,则首要任务是对数组进行排序,然后只能应用给定的逻辑
如果n为奇数
1, 2, 3, 4, 5 Median = 3
如果n是偶数
1, 2, 4, 5 Median = (2 + 4) / 2 = 3
输入值
arr[] = {3,5,2,1,7,8}
输出结果
意思是: 4.33333 中位数是: 4
输入值
arr[] = {1, 3, 4, 2, 6, 5, 8, 7}
输出结果
Mean is: 4.5 Median is: 4.5
Start Step 1→ declare function to 计算均值 double mean(int arr[], int size) declare int sum = 0 Loop For int i = 0 and i < size and i++ Set sum += arr[i] End return (double)sum/(double)size Step 2→ declare function to 计算中位数 double median(int arr[], int size) call sort(arr, arr+size) IF (size % 2 != 0) return (double)arr[size/2] End return (double)(arr[(size-1)/2] + arr[size/2])/2.0 Step 3→ In main() Declare int arr[] = {3,5,2,1,7,8} Declare int size = sizeof(arr)/sizeof(arr[0]) Call mean(arr, size) Call median(arr, size) Stop
#include <bits/stdc++.h> using namespace std; //计算均值 double mean(int arr[], int size){ int sum = 0; for (int i = 0; i < size; i++) sum += arr[i]; return (double)sum/(double)size; } //计算中位数 double median(int arr[], int size){ sort(arr, arr+size); if (size % 2 != 0) return (double)arr[size/2]; return (double)(arr[(size-1)/2] + arr[size/2])/2.0; } int main(){ int arr[] = {3,5,2,1,7,8}; int size = sizeof(arr)/sizeof(arr[0]); cout << "意思是: " << mean(arr, size)<<endl; cout << "中位数是: " << median(arr, size) << endl; return 0; }
输出结果
如果运行上面的代码,它将生成以下输出-
意思是: 4.33333 中位数是: 4