C++ 题解 (排序) 身高排队

这个排序问题对我这个初学者而言,还是动了一点儿脑筋的

题目描述

实验小学为了强健学生的身体,每天课间都要组织学生在户外学做广播体操。

这一天,五年级三班的所有同学在老师的指引下将队形排成了M行N列。现已知所有同学的身高,数值为整数,单位:厘米。要求在所有同学中:

1.挑选出每列身高最高的同学作为此列的小队长为同学们带操;
2.将所有同学按身高从高到低的顺序进行排队;
3.求出所有同学们的平均身高(要求:四舍五入保留整数);
4.统计出不小于平均身高的学生人数。
请同学们用计算机编程的方法来解决以上问题。

输入

输入共有M+1行:

1.第一行有:用11个空格隔开的两个整数M、N,分别代表学生的行数和列数(其中 1≤M≤10,1≤N≤10);

2.后M行有:每一行对应的是N列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:140厘米≤身高≤170厘米,不需判断此条件),数据之间空1格。

输出

输出共有M+3行:

1.前M行:每行一个数据为各列中身高最高的同学的高度 (要求:各列按从左到右的顺序);
2.第M+1行:为所有同学按身高从高到低的顺序排队的高度 (要求数据之间有1个空格);
3.第M+2行:只有一个数据为所有同学的平均身高 (要求:四舍五入,保留整数);
4.第M+3行:只有一个数据,为不小于平均身高的学生人数。

样例

输入

3 4
141 161 156 167
170 163 168 157
162 145 153 163

输出

170
163
168
167
170 168 167 163 163 162 161 157 156 153 145 141
159
7

思路

因为题目要求输入多行学生身高,并且要输出每一列的最大值,所以使用二维数组比较方便,后面再转为一维数组冒泡排序。

代码

#include <bits/stdc++.h>
using namespace std;
int main(){
   
	int m/*行*/, n/*列*/;
	cin >> m >> n;
	double tall[m+1]/*行*/[n+1]/*列*/; //方阵中每个学生的身高 
	for(int i = 0; i < m; 
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值