输入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;
}