依旧先看题目(给看题解的小伙伴一点精神震撼,不看的就是吃亏嘿嘿嘿) image

说明

秋天到了,同学们去橘子园摘橘子。张老师要求同学们把摘好的橘子去掉一个最大的,再去掉一个最小的的橘子,求出剩余的橘子的平均重量,并将剩余的橘子按照由轻到重排序。

输入格式

第一行是橘子的数量n。(1≤n≤200) 第二行是n个正整数,表示这些橘子的重量。

输出格式

第一行输出剩余橘子的平均重量,结果保留1位小数。 第二行输出剩余橘子按照由轻到重排序后的结果。

输入数据 1

5 9 1 2 1 8

输出数据 1

3.7 1 2 8

这个题目就是摘桔子,去掉最重的,去掉最轻的,然后排序,还要求平均值,看上去很复杂,其实就是,先设n,再设数组,然后往数组里面输入数据,然后直接干排序,不管什么去掉最大最小,直接先排序,然后先要求输出 平均重量,那我们先计算平均重量,因为已经排序好了,所以我们直接从i=1(第二个数据)开始累加,一直加到i=n-2(倒数第二项),然后除以(n-2),就会得到平均重量,输出的时候记得写%.1lf(float 用.1f),然后再把数组输出,就完成了,话不多说,上代码!

#include<stdio.h>
int main(){
	int n;//设置n
	scanf("%d",&n);//n赋值
	int shuzu[n];//创建一个大小为n的数组
	for(int i=0;i<n;i++){
		scanf("%d",&shuzu[i]);//输入n个数字 
	} 
	int temp;
	for (int i=0;i<n-1;i++) {  
        for (int j=0;j<n-i-1;j++) {  
            if (shuzu[j]>shuzu[j+1]) {  
                temp =shuzu[j];  
                shuzu[j]=shuzu[j + 1];  
                shuzu[j+1]=temp;  
            }  
        }  
    }  
    double qs=0;
    for(int i=1;i<n-1;i++){
    	qs+=shuzu[i];
	}
	printf("%.1lf\n",qs/(n*1.0-2.0));
    for(int i=1;i<n-1;i++){
    	printf("%d ",shuzu[i]);
	}
	return 0;
}

3 条评论

  • 1