1.求平均值

时间: 1ms        内存:128M

描述:

给定n个数,去掉最大数和最小数,求剩余数的平均值,结尾保留三位有效数字。

输入:

先输入数字个数n2<n<30),再输入n个整数

输出:

去掉最大值和最小值的之后n-2个数字的平均值,结果保留三位有效数字

示例输入:

4
1 2 3 4

示例输出:

2.500

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)
int main()
{
    int n;
    scanf("%d",&n);
    int a[n],Max = INT_MIN,Min = INT_MAX;
    double sum = 0;
    for(int i=0; i<n; i++)
    {
        scanf("%d",a+i);
        sum += a[i];
        Max = Max < a[i] ? a[i] : Max;
        Min = Min > a[i] ? a[i] : Min;
    }
    sum -= Max + Min;
    printf("%.3f\n",sum*1.0/(n-2));
    return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX-1)
int main()
{
    int n;
    scanf("%d",&n);
    int a[n],Max = INT_MIN,Min = INT_MAX;
    double sum = 0;
    for(int i=0; i<n; i++)
    {
        scanf("%d",a+i);
        sum += a[i];
        Max = Max < a[i] ? a[i] : Max;
        Min = Min > a[i] ? a[i] : Min;
    }
    sum -= Max + Min;
    printf("%.3f\n",sum*1.0/(n-2));
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。