输入10个数,先使用冒泡法将它们按照从大到小的顺序输出,然后求去掉最大和最小值后其余8个数的平均值

输入10个数,先使用冒泡法将它们按照从大到小的顺序输出,然后求去掉最大和最小值后其余8个数的平均值

求大佬

定义10长度大小的数组,冒泡排序后。遍历数组,从第一个位置遍历到第九个位置求和,最后输出平均数。

#include <stdio.h>
int main()
{
    int a[10];
    int i, j, swap,sum=0;
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
 for (int i = 9; i >0 ; i--) {
            for (int j = 0; j < i; j++) {
                if (a[j] > a[j + 1]) {
                    swap= a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = swap;
                }
            }
        }
        printf("%d ", a[0]);
    for (i = 1; i < 9; i++){
        printf("%d ", a[i]);
                sum+=a[i];
        }
        printf("%d\n", a[9]);
        printf("%.2f\n",sum/8.0);
    return 0;
}

如下:

#include <iostream>
using namespace std;
int main()
{
    double a[10];
    int i,j;
    double t,avg=0;;
    for(i=0;i<10;i++)
    {
        cin >> a[i];
        avg += a[i];
    }
    //排序
    for (i=0;i<9;i++)
    {
        for (j=0;j<9-i;j++)
        {
            if(a[j]<a[j+1])
            {
                t = a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    //shuchu
    for(i=0;i<10;i++)
        cout << a[i]<<" ";
    cout <<endl;
    avg = (avg -a[0] - a[0])/8;
    cout <<"平均值:"<<avg<<endl;
    return 0;
}