求n个整数的平均值与中位数

程序题目描述:

编写程序,求n个整数的平均值与中位数,从键盘接收一个整数n,假定用户输入的n一定是满足3 <= n <= 100。接下来,从键盘接收n个整数存入数组。用户输入的整数,大小是杂乱无序的。

计算这n个数的平均值和中位数。中位数就是数组元素升序排列后,最中间的一个数(奇数个元素),或中间两个元素平均值(偶数个元素)。

【输入格式】

第一个整数4告诉计算机要输入4个数字。第二行输入这四个数字,数字之间用空格分开。

4

3 1 2 9

【输出格式】

平均值保留2位小数,中位数保留1位小数。两项信息之间用纯英文逗号隔开,整个输出信息中不含空格。

mean=3.75, median=2.5


总体设计思想:通过求和算出平均数,通过冒泡排序法按照从小到大的顺序求中位数,如果数组中的数字的个数是偶数,即n%2=0,中位数是这组数中的中间两个数的平均值,如果数组中的数字的个数是奇数,即n%2=!0或n%2=1,中位数是这组数中的中间的数。

代码:

#include <stdio.h>
int main()
{
    int a[10000];
    int i,n,t,x,sum=0;
    float mean,median;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
        sum=sum+a[i];
    mean=sum*1.0/n;
    for(t=0;i<n-1;t++)
    {
        for(i=0;i<n-1;i++)
        {
            if(a[i]>a[i+1])
            {x=a[i];
                a[i]=a[i+1];
                a[i+1]=x;
            }
        }
    }
    if(n%2==0)
    {
        median=(a[n/2]+a[n/2-1])/2.0;
        printf("mean=%.1f,median=%.2f",mean,median);
    }
    else
    {
        median=a[(n-1)/2];
        printf("mean=%.1f,median=%.2f",mean,median);
    }
    return 0;
}

运行结果

 

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值