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

119 篇文章 6 订阅
59 篇文章 0 订阅

说明
求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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只贴代码君(yaosicheng)

你的鼓励是我写代码的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值