- 2023新生练习赛专题6(数组2)
#B. 【入门】橘子排队
- 2023-10-14 14:14:13 @
依旧先看题目(给看题解的小伙伴一点精神震撼,不看的就是吃亏嘿嘿嘿)
说明
秋天到了,同学们去橘子园摘橘子。张老师要求同学们把摘好的橘子去掉一个最大的,再去掉一个最小的的橘子,求出剩余的橘子的平均重量,并将剩余的橘子按照由轻到重排序。
输入格式
第一行是橘子的数量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 条评论
-
Tu sais LV 2 SU @ 2023-10-16 18:54:23
tel
-
2023-10-16 18:54:22@
tel
-
2023-10-16 18:54:16@
tel
- 1