当前位置:   article > 正文

C++编程计算平均数、众数和中位数,可以快速解决计算问题_编程实现数组的平均数和众数

编程实现数组的平均数和众数

说明
求N个整数的平均数,众数和中位数。

小知识:

  • 众数
    如有9个数:17 13 17 9 17 17 3 16 17  17出现的次数最多,即为这组数的众数。
    此题保证众数是唯一的。
  • 中位数
    如有9个数:102 170 96 90 97 106 110 182 100
     将这9个数按一定的顺序(从大到小或从小到大)排列后得到:
    182 170 110 106 102 100 97 96 90  正中间的一个数是102,102是这组数的中位数。
    而这10个数:106 99 104 120 107 112 33 102 97 100
    按一定顺序排列后得到:120 112 107 106 104 102 100 99 97 33
    正中间有两个数:104 102,中位数就是这两个数的平均数,即(104+102)/ 2 = 103。

输入格式
第一行为整数N(5 <= N <= 10000 ) 第二行为空格隔开的N个数Ai(0 <= Ai <= 100 )

输出格式
输出空格隔开的平均数 众数 中位数(平均数保留两位小数,中位数保留一位小数)。

#include<stdio.h>
int b[101];
int main(){
int n,i,j,s=0,k,temp;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
	scanf("%d",&a[i]);
	k=a[i];
	s=s+k;
	b[k]++;
}
printf("%.2lf ",s*1.0/n);
int t=0;
for(i=0;i<n;i++){
	if(b[t]<b[i]){
		t=i;
	}
}
printf("%d ",t);
for(i=0;i<n-1;i++){
	for(j=0;j<n-1;j++){
		if(a[j]>a[j+1]){
			temp=a[j];
			a[j]=a[j+1];
			a[j+1]=temp;
			
		}
	}
}
if(n%2!=0){
	printf("%.1lf",a[n/2]*1.0);
}else{
	printf("%.1lf",(a[n/2]+a[n/2-1])/2.0);
}
   return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
#include<iostream>
#include<iomanip>
using namespace std;

void sort(int a[],int n);

int main(){
	int n;
	int a[10000];
	int b[101];
	int m=0;
	double mid=0;
	double avg=0;
	int s=0;  
	
	cin>>n;
	
	for(int i=0;i<n;i++){
		cin>>a[i];
		b[a[i]]++;
		s=s+a[i];
	} 
	int max=0;

	for(int i=0;i<=100;i++){
		if(b[i]>max){
			max=b[i];
			m=i;
		}
	} 

	avg=s*1.0/n;
	
	sort(a,n);

	if(n%2!=0){
		mid=a[n/2];
	} 
	else{
		mid=(a[n/2]+a[n/2-1])*1.0/2;
	}
	
	cout<<setiosflags(ios::fixed)<<setprecision(2)<<avg<<" ";
	cout<<m<<" ";
	cout<<setiosflags(ios::fixed)<<setprecision(1)<<mid<<endl;
}


void sort(int a[],int n){
	int t=0;

	for(int i=0;i<n;i++){
	
		for(int j=0;j<n-1-i;j++){
			
			if(a[j]<a[j+1]){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
		
	} 
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/517634
推荐阅读
相关标签
  

闽ICP备14008679号