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}

输出结果

意思是: 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

以上是 C ++中未排序数组的均值和中位数的程序 的全部内容, 来源链接: utcz.com/z/331510.html

回到顶部