C++ 中计算能看电影的人数

2025 年 5 月 20 日 | 阅读 8 分钟

引言

有些电影有限制,例如年龄限制,甚至电影院的座位数量也有限制。那么,基于这些标准,我们能算出有多少人可以看电影吗?

我们将通过专注于如何设计一个应用程序来计算使用 C++ 统计一个群组中符合条件的用户来讨论这个问题。但是,首先,我们将讨论资格标准。

问题陈述

观看电影有两个限制。因此,这群人希望确定是否有可能观看电影

  1. 年龄限制:电影对观众年龄有截止政策。
  2. 座位容量:影院的总座位数有限。

编写一个程序,当已知观看电影所需的人数时,该程序将确定来自该群组中年龄高于电影最低年龄的人数。

解决方案方法

为了帮助我们解决这个问题,我们将按如下方式进行

  1. 输入详细信息:获取相关信息,例如群组人数或群组年龄、允许的年龄限制以及允许的最大座位数。
  2. 筛选符合条件的人:确定符合设定的最低年龄要求的人数。
  3. 考虑座位限制:确定有权参加会议的人数,并检查是否有足够的座位。如果座位不足,请进行必要的更改。
  4. 输出:打印可以观看电影的人数。

示例 1

让我们举一个例子来说明如何在 C++ 中计算可以观看电影的人数。

输出

Enter the number of people in the group: 6  
Enter the minimum age required for the movie: 18  
Enter the seating capacity of the theater: 4  
Enter the ages of the group members: 16 21 18 17 25 19  
Number of people who can watch the movie: 4    

在这个六人小组中,有四人能够访问该服务的年龄限制部分(21 岁、18 岁、25 岁和 19 岁)。控制台设置的限制使我们只能容纳 4 个人,这意味着只有 4 个人能够享受这项服务。

代码解释

  1. 输入信息:程序接受输入,例如用户数量、他们的年龄、最低接受年龄限制和影院容量。
  2. 年龄验证:验证整个群组的年龄是否符合所需的最低要求。
  3. 座位优化:使用 min() 函数通过限制允许进入指定礼堂的用户数量来保护影院座位安排。
  4. 结果:程序的输出是根据规定限制计算出的可以观看电影的人数。

示例 2

让我们再举一个例子来说明如何在 C++ 中计算可以观看电影的人数。

输出

Enter the number of people in the group: 10
Enter the minimum age required for the movie: 13
Enter the seating capacity of the theater: 200
Enter the ages of the group members:
Person 1 age: 22
Person 2 age: 10
Person 3 age: 23
Person 4 age: 32
Person 5 age: 33
Person 6 age: 58
Person 7 age: 62
Person 8 age: 9
Person 9 age: 13
Person 10 age: 18

Summary:
Total group members: 10
Minimum age required: 13
Seating capacity: 200
Number of eligible people: 8
Number of people who can watch the movie: 8

Detailed Report:
        ID       Age       Eligible  Seat Assigned
--------------------------------------------------
         7        62            Yes            Yes
         6        58            Yes            Yes
         5        33            Yes            Yes
         4        32            Yes            Yes
         3        23            Yes            Yes
         1        22            Yes            Yes
        10        18            Yes            Yes
         9        13            Yes            Yes
         2        10             No             No
         8         9             No             No   

代码解释

  1. 人物结构
    一个人的独特属性,例如年龄、ID(人员编号)和资格(年龄要求),都嵌入在一个名为 Person 的特定结构中。
  2. 排序符合条件的成员
    根据年龄将群组分为符合条件和不符合条件的成员。符合年龄标准的人排在前面,其中老年人总是优先获得空座位。
  3. 详细报告
    数据处理后,会生成一份计算报告,显示每个人的年龄、资格以及是否分配了座位。
  4. 灵活可扩展
    这类程序优雅地处理了座位不足或符合条件的人员不足等极端情况。
    • 排序和优先级:优先考虑年龄较大的合格人员。
    • 可扩展性:它可以处理更大的群组,并提供有关座位分配和资格的更好见解。
    • 详细报告:可调整的报告,显示每个人的资格和座位分配。
    • 极端情况处理:可以轻松处理合格观众少和座位安排少等情况。

示例 3

让我们再举一个例子来说明如何在 C++ 中计算可以观看电影的人数。

输出

Enter the number of people in the group: 7
Enter the minimum age required for the movie: 18
Enter the seating capacity of the theater: 4
Enter the ages of the group members:
16 20 18 25 19 17 22
Number of people who can watch the movie: 4
Ages of people assigned seats: 25, 22, 20, 19   

说明

  1. 筛选年龄
    只有符合最低年龄要求的人的年龄才会被添加到 eligibleAges 向量中。
  2. 排序
    年龄按升序排序,以确保堆栈顶部包含最年长的合格人员。
  3. 使用堆栈
    合格年龄被推入堆栈。它确保最年长的人(优先级最高)位于堆栈顶部。
  4. 座位分配
    程序从堆栈中弹出元素,直到达到座位容量,将座位分配给最年长的合格人员。
  5. 输出
    程序输出可以观看电影的人数以及他们按座位分配顺序的年龄。

结论

借助此 C++ 程序,用户能够根据年龄标准和可用座位准确估算有资格观看电影的人数。该逻辑简单明了,但在现实世界中对资格和资源限制有许多应用。