使用 PAIR 结构体解决小朋友得分问题

问题描述

N个小朋友坐在教室里,每个小朋友有一个行号和一个列号。有多少人的行号和列号都小于等于甲,甲就是多少分。请你按输入顺序输出每个人的得分。限定必须用 PAIR 读入。

输入

4
1 3
3 1
2 2
4 4

输出

0
0
0
3

代码实现

#include <iostream>
#include <utility> // 头文件中包含了 PAIR

using namespace std;

int main() {
    int n;
    cin >> n;
    pair<int, int> p[n]; // 定义一个长度为n的 PAIR 数组
    for (int i = 0; i < n; i++) {
        cin >> p[i].first >> p[i].second; // 依次读入行号和列号
    }
    for (int i = 0; i < n; i++) {
        int score = 0;
        for (int j = 0; j < n; j++) {
            if (p[j].first <= p[i].first && p[j].second <= p[i].second) {
                score++; // 满足条件则得分+1
            }
        }
        cout << score << endl; // 输出得分
    }
    return 0;
}

代码分析

  1. 引入头文件: 使用 #include <utility> 引入 pair 结构体。
  2. 定义 PAIR 数组: pair<int, int> p[n]; 定义一个名为 p 的长度为 n 的 PAIR 数组,用于存储每个小朋友的行号和列号。
  3. 输入数据: 使用循环遍历每个小朋友,输入行号和列号,并存储在 p 数组中。
  4. 计算得分: 对于每个小朋友,使用双重循环遍历所有小朋友,如果当前小朋友的行号和列号都小于等于遍历到的其他小朋友,则得分加 1。
  5. 输出得分: 输出每个小朋友的得分。

总结

本代码使用 PAIR 结构体简洁地解决了小朋友得分问题。PAIR 结构体方便存储和访问小朋友的行号和列号,代码逻辑清晰易懂。

C++ 使用 PAIR 解决小朋友得分问题

原文地址: https://www.cveoy.top/t/topic/mx4H 著作权归作者所有。请勿转载和采集!

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