C++ 编程实现舞蹈小组训练数据分析
C++ 编程实现舞蹈小组训练数据分析
学校舞蹈小组举行形体课训练,王老师将队员的队形编排成了 M 行 N 列,现已知所有队员的身高,数值为整数,单位:厘米。根据舞蹈的要求:要在所有队员中:
(1) 挑选出每行身高最高的同学作为小组的组长协助老师进行训练;
(2) 求出每行队员们的平均身高;
(3) 最后要在所有队员中挑选出身高大于 165 厘米的队员进行领舞,并将身高大于 165 厘米的队员按从高到低的顺序重新排队。 请同学们用计算机编程的方法来解决以上问题。
输入描述:
共有 M+1 行:
第一行有:用空格隔开的两个整数 M、N, 分别代表身高数据的行数和列数(其中 1≤M≤30,1≤N≤30);
后 M 行:每一行对应的是 N 列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:100 厘米≤身高≤200 厘米)
输出描述:
共有 2M+1 行:
前 M 行:每行一个数据为在该行中身高最高的那位队员的高度;
后 M 行:每行一个数据为每行队员的平均身高(要求:四舍五入保留整数)
最后一行:为所有身高大于 165 厘米的队员的身高(按从高到低的顺序),数据之间空 1 格。
【要求】
每行的数据都从第一列开始输出内容:
下面是一个解决该问题的 C++ 代码示例:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
int main() {
int M, N;
cin >> M >> N;
vector<vector<int>> heights(M, vector<int>(N));
vector<int> max_heights;
vector<int> average_heights;
vector<int> tall_heights;
// 输入身高数据
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cin >> heights[i][j];
}
}
// 求每行最高身高和平均身高
for (int i = 0; i < M; i++) {
int max_height = heights[i][0];
int sum_height = 0;
for (int j = 0; j < N; j++) {
max_height = max(max_height, heights[i][j]);
sum_height += heights[i][j];
}
max_heights.push_back(max_height);
average_heights.push_back(sum_height / N);
}
// 输出每行最高身高和平均身高
for (int i = 0; i < M; i++) {
cout << max_heights[i] << endl;
}
for (int i = 0; i < M; i++) {
cout << average_heights[i] << endl;
}
// 挑选身高大于 165 厘米的队员
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (heights[i][j] > 165) {
tall_heights.push_back(heights[i][j]);
}
}
}
// 按从高到低排序
sort(tall_heights.begin(), tall_heights.end(), greater<int>());
// 输出身高大于 165 厘米的队员身高
for (int i = 0; i < tall_heights.size(); i++) {
cout << tall_heights[i];
if (i < tall_heights.size() - 1) {
cout << " ";
}
}
return 0;
}
输入示例:
3 4
170 165 175 180
160 150 155 170
165 170 160 175
输出示例:
180
170
175
165
165
166
170
原文地址: http://www.cveoy.top/t/topic/pFth 著作权归作者所有。请勿转载和采集!