C++自创题目——第一期

一、题目描述:

在一段时间内,到达港口的船有n艘,其中每艘船的信息包括:到达时间t(表示第t秒),船上乘客数k,以及k名乘客的国籍。输出前3600s内每艘船上国籍种数,并输出国籍种数最少的船只的到达时间。

二、分析:

首先,我们需要一个数据结构来存储每艘船的信息。我们可以使用结构体来表示每艘船,其中包含到达时间和乘客数组。乘客数组可以使用一个整型数组来表示,每个元素表示一名乘客的国籍。

三、代码:

#include <stdio.h>#define MAX_SHIPS 1000
#define MAX_PASSENGERS 100typedef struct {int arrival_time;int passengers[MAX_PASSENGERS];int num_passengers;
} Ship;int main() {// 输入n艘船的信息int n;printf("请输入船只数量:");scanf("%d", &n);Ship ships[MAX_SHIPS];for (int i = 0; i < n; i++) {printf("请输入第%d艘船的到达时间:", i + 1);scanf("%d", &ships[i].arrival_time);printf("请输入第%d艘船上乘客数量:", i + 1);scanf("%d", &ships[i].num_passengers);printf("请输入第%d艘船上乘客的国籍(以空格分隔):", i + 1);for (int j = 0; j < ships[i].num_passengers; j++) {scanf("%d", &ships[i].passengers[j]);}}// 统计每艘船上的国籍种数int nationality_count[MAX_SHIPS] = {0};for (int i = 0; i < n; i++) {for (int j = 0; j < ships[i].num_passengers; j++) {nationality_count[i]++;}}// 找到国籍种数最少的船只的到达时间int min_nationality_count = nationality_count[0];int min_nationality_time = ships[0].arrival_time;for (int i = 1; i < n; i++) {if (nationality_count[i] < min_nationality_count) {min_nationality_count = nationality_count[i];min_nationality_time = ships[i].arrival_time;}}// 输出每艘船上的国籍种数for (int i = 0; i < n; i++) {printf("第%d艘船上的国籍种数为%d\n", i + 1, nationality_count[i]);}// 输出国籍种数最少的船只的到达时间printf("国籍种数最少的船只的到达时间为%d\n", min_nationality_time);return 0;
}

四、解释:

  1. 首先,我们定义了一个 Ship 结构体来表示每艘船的信息。该结构体包含了 arrival_time 用于表示到达时间,passengers 数组用于存储乘客国籍,以及 num_passengers 表示乘客数量。
  2. 接下来,我们在 main 函数中读取用户输入的船只数量和每艘船的信息。
  3. 然后,我们使用一个循环来统计每艘船上的国籍种数。遍历每艘船的乘客数组,每次遇到一个新的国籍,就将国籍种数加1。
  4. 接着,我们使用另一个循环来找到国籍种数最少的船只的到达时间。我们从第一艘船开始遍历,如果遇到一个国籍种数更少的船只,就更新最小的国籍种数和对应的到达时间。
  5. 最后,我们使用循环输出每艘船上的国籍种数,并输出国籍种数最少的船只的到达时间。

五、一些相关问题:

  1. 如果船只数量超过了预先定义的上限 MAX_SHIPS,该如何处理?
  2. 如何统计所有船只中的不同国籍种数?
  3. 如果乘客数量超过了预先定义的上限 MAX_PASSENGERS,该如何处理?
  4. 如果用户输入的到达时间不按照升序排列,该如何处理?
  5. 如何判断两艘船只到达时间相同的情况下哪艘船只的国籍种数更少?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/112339.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字货币量化交易平台

数字货币量化交易平台是近年来金融科技领域迅速崛起的一种创新型交易方式。它通过应用数学模型和算法策略&#xff0c;实现对数字货币市场的自动交易和风险控制。然而&#xff0c;要在这个竞争激烈的领域中脱颖而出&#xff0c;一个数字货币量化交易平台需要具备足够的专业性&a…

服务器数据恢复-AIX PV完整镜像方法以及误删LV的数据恢复方案

AIX中的PV相当于物理磁盘&#xff08;针对于存储来说&#xff0c;PV相当于存储映射过来的卷&#xff1b;针对操作系统来说&#xff0c;PV相当于物理硬盘&#xff09;&#xff0c;若干个PV组成一个VG&#xff0c;AIX可以将容量不同的存储空间组合起来统一分配。AIX把同一个VG的所…

git 基础

1.下载安装Git&#xff08;略&#xff09; 2.打开git bash窗口 3.查看版本号、设置用户名和邮箱 用户名和邮箱可以随意起&#xff0c;与GitHub的账号邮箱没有关系 4.初始化git 在D盘中新建gitspace文件夹&#xff0c;并在该目录下打开git bash窗口 git init 初始化完成后会…

小区物业业主管理信息系统设计的设计与实现(论文+源码)_kaic

摘 要 随着互联网的发展&#xff0c;网络技术的发展变得极其重要&#xff0c;所以依靠计算机处理业务成为了一种社会普遍的现状。管理方式也自然而然的向着现代化技术方向而改变&#xff0c;所以纯人工管理方式在越来越完善的现代化管理技术的比较之下也就显得过于繁琐&#x…

【大数据】Doris:基于 MPP 架构的高性能实时分析型数据库

Doris&#xff1a;基于 MPP 架构的高性能实时分析型数据库 1.Doris 介绍 Apache Doris 是一个基于 MPP&#xff08;Massively Parallel Processing&#xff0c;大规模并行处理&#xff09;架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff…

DETR-《End-to-End Object Detection with Transformers》论文精读笔记

DETR&#xff08;基于Transformer架构的目标检测方法开山之作&#xff09; End-to-End Object Detection with Transformers 参考&#xff1a;跟着李沐学AI-DETR 论文精读【论文精读】 摘要 在摘要部分作者&#xff0c;主要说明了如下几点&#xff1a; DETR是一个端到端&am…

本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama

本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama 1. CodeLlama 是什么2. CodeLlama Github 地址3. 下载 CodeLlama 模型4. 部署 CodeLlama5. 在 VSCode 中使用 CodeLlama6. 使用WSGI启动服务7. 创建 start.sh 启动脚本 1. CodeLlama 是什么 Code Llama 是一个基于 Llama 2 的…

Flink_state 的优化与 remote_state 的探索

摘要&#xff1a;本文整理自 bilibili 资深开发工程师张杨&#xff0c;在 Flink Forward Asia 2022 核心技术专场的分享。本篇内容主要分为四个部分&#xff1a; 相关背景state 压缩优化Remote state 探索未来规划 点击查看原文视频 & 演讲PPT 一、相关背景 1.1 业务概况 从…

context.WithCancel()的使用

“ WithCancel可以将一个Context包装为cancelCtx,并提供一个取消函数,调用这个取消函数,可以Cancel对应的Context Go语言context包-cancelCtx[1] 疑问 context.WithCancel()取消机制的理解[2] 父母5s钟后出门&#xff0c;倒计时&#xff0c;父母在时要学习&#xff0c;父母一走…

110. 平衡二叉树

原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝…

软件设计师学习笔记7-输入输出技术+总线+可靠性+性能指标

目录 1.输入输出技术 1.1数据传输控制方式 1.2中断处理过程 2.总线 3.可靠性 3.1可靠性指标 3.2串联系统与并联系统 3.3混合模型 4.性能指标 1.输入输出技术 即CPU控制主存与外设交互的过程 1.1数据传输控制方式 (1)程序控制&#xff08;查询&#xff09;方式&…

qt第一天

#include "widget.h" #include "ui_widget.h" #include "QDebug" Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->resize(QSize(800,600)); //使用匿名对象&#xff0c;调用重…

C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)

文章目录 本栏简介1. 什么是设计模式2. GOF 设计模式3. 从面向对象谈起4. 深入理解面向对象5. 软件设计固有的复杂性5.1 软件设计复杂性的根本原因5.2 如何解决复杂性 ? 6. 结构化 VS. 面向对象6.1 同一需求的分解写法6.1.1 Shape1.h6.1.2 MainForm1.cpp 6.2 同一需求的抽象的…

SQL 大小敏感问题

在SQL中&#xff0c;关键字和函数名 是不区分 大小写的 比如&#xff08;select、where、order by 、group by update 等关键字&#xff09;&#xff0c;以及函数(ABS、MOD、round、min等) window系统默认是大小写不敏感 &#xff08;ZEN文件和zen 文件 不能同时存在&#xff…

《悉达多》读书笔记——觉悟到的真理到底是什么?

目录 一、作者简介 二、创造背景 三、内容简介 第一阶段 第二阶段 第三阶段 第四阶段 第五阶段 四、经典摘录 五、个人思考 一、作者简介 赫尔曼黑塞&#xff08;Hermann Hesse&#xff0c;1877年7月2日&#xff5e;1962年8月9日&#xff09;&#xff0c;德国作家&…

Next.js基础语法

Next.js 目录结构 入口App组件&#xff08;_app.tsx&#xff09; _app.tsx是项目的入口组件&#xff0c;主要作用&#xff1a; 可以扩展自定义的布局&#xff08;Layout&#xff09;引入全局的样式文件引入Redux状态管理引入主题组件等等全局监听客户端路由的切换 ts.config…

在CSDN的第128天:写博客是我对抗焦虑的工具

目录 机缘 收获 日常 成就 憧憬 致各位 机缘 机缘&#xff0c;我在CSDN应该有两个比较大的机缘 第一个机缘是在大一上的时候&#xff0c;加入了实验室的朋友们都在写博客&#xff0c;而我因为没加入实验室&#xff0c;一度非常焦虑。当时我很害怕&#xff0c;我害怕我自己…

软件测试人员在工作中如何运用Linux

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事&#xff0c;工作时需要用到&#xff0c;面试时会被问到&#xff0c;简历中需要写到。 对于软件测试人员来说&#xff0c;不需要你多么熟练使用Linux所有命令&#xff0c;也不需要你对Linux系统完全了解&#xff…

计算机网络(速率、宽带、吞吐量、时延、发送时延)

速率&#xff1a; 最重要的一个性能指标。 指的是数据的传送速率&#xff0c;也称为数据率 (data rate) 或比特率 (bit rate)。 单位&#xff1a;bit/s&#xff0c;或 kbit/s、Mbit/s、 Gbit/s 等。 例如 4 1010 bit/s 的数据率就记为 40 Gbit/s。 速率往往是指额定速率或…