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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录