C++中未排序陣列的平均值和中位數程式
給定一個未排序陣列,任務是計算該未排序陣列的平均值和中位數。
計算平均值
計算平均值是為了找出平均數。我們可以使用以下公式來計算平均值
平均值 = (陣列中所有元素之和)/(元素總數)
計算中位數
如果陣列已排序,則對於陣列中元素個數為奇數的情況,中位數是陣列的中間元素;如果元素個數為偶數,則中位數是兩個中間元素的平均值。
如果陣列未排序,則首先需要對陣列進行排序,然後才能應用給定的邏輯
如果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}輸出
Mean is : 4.33333 Median is : 4
輸入
arr[] = {1, 3, 4, 2, 6, 5, 8, 7}輸出
Mean is: 4.5 Median is: 4.5
演算法
Start
Step 1→ declare function to calculate mean
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 calculate median
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;
//calculate mean
double mean(int arr[], int size){
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return (double)sum/(double)size;
}
//calculate median
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 is : " << mean(arr, size)<<endl;
cout << "Median is : " << median(arr, size) << endl;
return 0;
}輸出
如果執行以上程式碼,它將生成以下輸出:
Mean is : 4.33333 Median is : 4
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP