身高排队问题

该程序使用C++编程解决了一道关于组织学生广播体操队形的问题。输入包含学生身高数据,输出包括每列最高身高、所有学生按身高排序、平均身高及不小于平均身高的学生数。程序通过读取多行输入,计算并排序,实现了题目要求的各项功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述
​ 海贼小学为了强健学生的身体,每天课间都要组织学生在户外学做广播体操。​ 这一天,五年级三班的所有同学在老师的指引下将队形排成了 M 行 N 列。现已知所有同学 的身高,数值为整数,单位:厘米。要求在所有同学中:

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

输入
输入共有 m+1 行:

第一行有:用 1 个空格隔开的两个整数M ,N ,分别代表学生的行数和列数(其中 1≤M≤10,1≤N≤10);
后 m 行有:每一行对应的是 N 列数据,表示所有学生的身高尺寸,数值为整数,单 位:厘米(其中:140 厘米 身高 170 厘米,不需判断此条件),数据之间空 1 格。
输出
输出共有 n+3 行:

前 n 行:每行一个数据为各列中身高最高的同学的高度 (要求:各列按从左到右的顺 序);
第 n+1 行:为所有同学按身高从高到低的顺序排队的高度 (要求数据之间有1个空 格);
第 n+2 行:只有一个数据为所有同学的平均身高 (要求:四舍五入,保留整数);
第 n+3 行:只有一个数据,为不小于平均身高的学生人数。
样例输入1
3 4
141 161 156 167
170 163 168 157
162 145 153 163
样例输出1
170
163
168
167
170 168 167 163 163 162 161 157 156 153 145 141
159
7

#include <iostream>
#include<algorithm>
using namespace std;

int main() {
	int m,n,cnt=0;
	cin >> m>>n;
	int num[15][15],num2[105];
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			cin >> num[i][j];
			num2[cnt] = num[i][j];
			cnt++;
		}
	}
	int tall;
	for (int i = 0; i < n; i++) {
		tall = num[0][i];
		for (int j = 1; j < m; j++) {
			if (tall < num[j][i]) {
				tall = num[j][i];
			}
		}
		cout << tall<<endl;
	}
	sort(num2, num2 + cnt);
	int sum = 0;
	for (int i = cnt - 1; i >= 0; i--) {
		sum += num2[i];
		if (i != cnt - 1) cout << " ";
		cout << num2[i];
	}
	cout << endl;
	int ave =round(1.0 * sum / cnt);
	cout << ave << endl;
	int count = 0;
	for (int i = cnt - 1; i >= 0; i--) {
		if (num2[i] >= ave) {
			count++;
		}
		else {
			break;
		}
	}
	cout << count << endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yitahutu79

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值