C++基础-编程练习题和答案(数组2)

文章目录

  • 前言
  • 一、植树
  • 二、校门外的树
  • 三、排除第一个异形基因
  • 四、比身高
  • 五、supercell做核酸


前言

在C++中,数组是一种数据结构,它允许在内存中连续存储相同类型的元素。数组是静态的,这意味着它们在编译时必须指定大小,并且在程序执行期间不能改变大小。数组是通过索引来访问的,索引从0开始。本文考察C++数组的使用,数组的定义和初始化、数组元素的查找、数组的插入、删除等

一、植树

【试题描述】
Star为了参加编程选拔考试已经做好了非常充分的准备,但是他有个最重要的毛病就是他十分的粗心,
为了能在考试中不犯低级错误, 拿到比较好的成绩, star 决定做件好事来增加他的 rp。
做什么好事呢? star 想到了常州好多道路刚修好, 路边的绿化还没有好,
于是 star 决定为一条刚修好的马路两旁种上树木。 当然这一定是 star 亲自抄手(挖坑,
种树, 浇水……工程量好大, 为了 rp, star 豁出去了, 再累再苦也干) , 道路每隔 5 米种一棵树,
正常情况下 star 种一棵树需要 16 分钟, 但是由于有部分位置的土壤质地不一样,
所以 star 种树的时间有时会和正常情况不一样, 质地软的就种得快, 质地硬的就种得慢,
当然不一样的土壤是预先知道的, 所以 star 想统计他种完一条路上的树需要多少时间。
【输入要求】
第一行两个正整数 m 和 n,m 表示道路有 m 米, (m 保证是 5 的倍数) , n 表示有 n 段不
同质地的土壤; m<=100,n<=20;
第二行到 n+1 行每行 3 个整 i,j,k 表示从第 i 米开始到 j 米结束这段道路的质地是一样的,
(i<=j)在这些地上每种树需要耗费 k 分钟时间, 道路起始位置为 0, 起始位置当然也是要植树的。
【输出要求】
一行一个整数(保证在 longint 范围) , star 种完一条道路上的树需要的总时间, 注意道路的两边都要植树。
【输入样例】
15 3
0 10 15
11 12 10
13 15 20
【输出样例】
130
【知识点及提示】
样例解释: 一共需要植 8 棵树, 一边四棵。 分别种在 0 5 10 15 号位置共需要(15+15+15+20) *2=130 分钟

#include <bits/stdc++.h>
using namespace std; int main() {  int m, n;  // 输入道路长度和土壤区域数量  cin >> m >> n; // 道路每5米一棵树,因此树的数量是m/5+1  int len=m/5+1;//存放每一棵数需要的时间 // 初始化种植时间数组,假设初始都是16分钟  int  times[len];for(int i = 0; i < len; ++i) {times[i]=16;}int count=0;// 读取土壤区域信息  for (int i = 0; i < n; ++i) {  // start:开始位置 end:结束位置  cost:耗费的时间 int start, end, cost;  cin >> start >> end >> cost;  for (int pos = start; pos <= end; ++pos) {//如果对5取余为0则说明该点需要种树if (pos % 5 == 0) {//记录该点种树需要的时间times[count] = cost;count=count+1;}}  }  // 计算总的种植时间  int t = 0;  for (int i = 0; i < len; ++i) {// 两边都要植树,所以要乘以2  t +=  times[i] * 2;  }  cout << t ; // 输出结果  return 0;  
}

二、校门外的树

【试题描述】
某校大门外长度为 L 的马路上有一排树, 每两棵相邻的树之间的间隔都是 1 米。
我们可以把马路看成一个数轴, 马路的一端在数轴 0 的位置, 另一端在 L 的位置;
数轴上的每个整数点, 即 0, 1, 2, ……, L, 都种有一棵树。
由于马路上有一些区域要用来建地铁。 这些区域用它们在数轴上的起始点和终止点表示。
已知任一区域的起始点和终止点的坐标都是整数, 区域之间可能有重合的部分。
现在要把这些区域中的树(包括区域端点处的两棵树) 移走。 你的任务是计算将这些树都移走后, 马路上还有多少棵树。
【 输入要求】
第一行有两个整数 L( 1 <= L <= 10000) 和 M( 1 <= M <= 100) , L 代表马路的长度, M代表区域的数目, L 和 M 之间用一个空格隔开。
接下来的 M 行每行包含两个不同的整数, 用一个空格隔开, 表示一个区域的起始点和终止点的坐标。
【 输出要求】
一个整数, 表示马路上剩余的树的数目。
【 输入样例】
500 3
150 300
100 200
470 471
【 输出样例】
298

代码实现:

#include <bits/stdc++.h>
using namespace std;  
int main() {  int L, M;  cin >> L >> M;  //创建一个大小为L+1的数组,初始值1 int t[L+1];for (int i = 0; i < L+1; i++) { t[i]=1;}// 读取区域的起始点和终止点的坐标for (int i = 0; i < M; i++) {  int start, end;  cin >> start >> end;  for(int j=start;j<=end;j++) {t[j]=0;}}  // 计算累积和并计算剩余树的数量  int count = 0;   for (int i = 0; i < L+1; i++) {  if(t[i]==1){count=count+1;}}  cout << count;  return 0;  
}

三、排除第一个异形基因

【 试题描述】
神舟 X 号飞船在完成宇宙探险任务回到地球后, 宇航员杨利伟感觉身体不太舒服, 去了医院检查,
医生诊断结果: 杨利伟体内基因已被改变, 原有人体基因序列中已经被渗入外星球不明异形生物基因,
但可喜的是, 这些异形基因都有一个共同的特征, 就是该基因序号的平方除以 7 的余数都是 1, 要赶快清除掉, 否则会危害整个人类。 赶快行动吧。
( 仅去除第一个异型基因)
【 输入要求】
第一行是一个整数 n( 基因个数) 第二行是 n 个整数( 杨利伟的基因序列)
【 输出要求】
去除第一个异形基因后的正常序列, 空格隔开
【 输入样例】
4
6 2 8 12
【 输出样例】
2 8 12

代码实现:

  
int main() {  int n;  cin >> n; // 读取基因个数  int genes[n];  // 读取基因序列  for (int i = 0; i < n; ++i) {  cin >> genes[i];  }  // 查找并去除第一个异形基因  for (int i = 0; i < n; ++i) {  int m= genes[i];if ((m * m) % 7 == 1) { // 检查是否是异形基因  // 去除异形基因   for(int j=i;j<n;j++){genes[j]=genes[j+1];}break; // 只需要去除第一个,所以找到后退出循环  }  }  // 输出剩余基因序列  for (int i = 0; i < n-1; ++i) {  cout << genes[i];  if (i < n - 1) {  cout << " "; // 在最后一个基因前不输出空格  }  }   return 0;  
}

四、比身高

【 试题描述】
有 N 个人排成一排, 假设他们的身高均为正整数, 请找出其中符合以下条件的人:
排在他前面且比他高的人数与排在他后面且比他高的人数相等。
【 输入要求】第一行为一个正整数 N, 1<N<1000, 表示有多少个人。
下面 N 行, 每行一个正整数, 表示从前往后每个人的身高, 假设每个人的身高≤10000。
【输出要求】
一行一个整数, 表示满足这个条件的人数。
【输入样例】
4
1
2
1
3
【输出样例】
2

C++代码实现

#include <bits/stdc++.h>using namespace std;  int main() {  int N;  cin >> N;  int heights[N];  for (int i = 0; i < N; ++i) {  cin >> heights[i];  }  // 初始化一个数组来记录从当前位置到末尾比该位置身高高的人数  int tallerCount[N];  for (int i = 0; i < N; ++i) {  tallerCount[i]=0;  }  // 从后往前遍历,计算每个位置之后有多少人比他高  for (int i = N - 1; i >= 0; --i) {  for (int j = i + 1; j < N; ++j) {  if (heights[j] > heights[i]) {  tallerCount[i]++;  }  }  }  //满足条件的人数 int count = 0;  // 因为我们已经有了tallerCount数组  for (int i = 0; i < N; ++i) {  int prevTaller = 0;  for (int j = 0; j < i; ++j) {  if (heights[j] > heights[i]) {  prevTaller++;  }  }  // 如果前面比他高的人数(i之前的所有人)等于后面比他高的人数(tallerCount[i])if (prevTaller == tallerCount[i]) {  count++;  }  }  cout << count;  return 0;  
}

五、supercell做核酸

【试题描述】
众所周知, supercell 是一家全球有名的游戏公司, 荒野乱斗, 皇室战争, 部落冲突…
这些优质游戏都是他们开发的。
2020 年, 新冠状病毒爆发, 荒野乱斗的策划 mark 决定每天随机让 5 个工作人员做核酸。
这个决定进行了 n 天(n<=50)。 作为荒野乱斗粉丝的你, 想知道在这 n 天里, 谁做核酸的次数最多。
【输入要求】
第一行 1 个整数 n(n<=50) , 表示做核酸的天数。
第 2 行到 n+1 行, 每行 5 个数, 表示 5 位工作人员的员工号。
【输出要求】
每行两个整数, 格式为工作号+空格+做核酸的次数
【输入样例】
5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
【输出样例】
5 5
【知识点及提示】
如果有多个相同的最大数, 则全输出。

C++代码实现

#include <bits/stdc++.h>using namespace std;  int main() {  int n;  cin >> n;  //记录员工做核酸数据 int test[5*n] ;//员工个数 int m=50 ;// 记录每个员工做核酸的次数  int testCounts[m]={0};// 读取数据并更新做核酸的次数  for (int i = 0; i < 5*n; i++) {  cin >> test[i]; testCounts[test[i]]++; // 增加对应员工号的做核酸次数  }  // 找出做核酸次数最多的次数  int maxTests = 0;   for(int i=0;i<m;i++){
//		maxTests = max(maxTests, testCounts[i]);  if(maxTests<testCounts[i]) {maxTests=testCounts[i];}}// 输出做核酸次数最多的员工及其次数  for(int i=0;i<m;i++){int t=testCounts[i];if(t==maxTests){cout << i << " " << testCounts[i] << endl;  }}return 0;  
}

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

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

相关文章

java版MES系统全套源码,支持 SaaS 多租户,管理后台的 Vue3 版本采用 :vue-element-plus-admin

MES生产制造执行系统源码&#xff0c;有演示&#xff0c;自主研发&#xff0c;多个项目应用案例&#xff0c;成熟稳定。支持二次开发&#xff0c;商业授权后可商用。 MES系统是面向制造企业车间执行层的生产信息化管理系统&#xff0c;能实时监控生产过程、管理制造数据、优化生…

惊呆了!六西格玛培训竟然这么强大!——张驰咨询

六西格玛&#xff0c;这个在业界久负盛名的管理理念&#xff0c;它的魅力太强大了。曾听闻它能帮助企业和个人提升竞争力&#xff0c;但当真正走进这个培训体系时&#xff0c;会发现它的影响力远超你的想象。 在六西格玛的指导下&#xff0c;企业实现了显著的转变。之前那些看…

vue使用html2canvas截图下载时,存在svg或者img或者特殊字体时截图不全的解决办法

使用html2canvas进行div截图时&#xff0c;存在svg和img的解决办法 写在前面&#xff1a;vue使用html2canvas截图时&#xff0c;存在svg或者img或者特殊字体时截图时空白&#xff0c;或者不全解决办法如下第一步&#xff0c;svg或者img先转base64&#xff08;如果是特殊字体&am…

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…

区块链简要介绍及运用的技术

一、区块链的由来 区块链概念最早是从比特币衍生出来的。 比特币&#xff08;Bitcoin&#xff09;诞生于2008年&#xff0c;是由一个名叫中本聪&#xff08;Satoshi Nakamoto&#xff09;的人首次提出&#xff0c;这个人非常神秘&#xff0c;至今没有他的任何准确信息。在提出…

C++ Primer Chapter 4 Expressions

Chapter 4 Expressions 4.11 类型转换 4.11.2 其他隐式类型转换 数组转换成指针&#xff1a; 在大多数用到数组的表达式中&#xff0c;数组自动转换成指向数组首元素的指针&#xff1a; int ia[10]; int* ipa;♜ 当数组被用作decltype关键字的参数&#xff0c;或者作为取地…

每天一个数据分析题(三百五十三)序列类图表

比较类图表主要用于在实际值与目标值之间、不同对象之间或者不同区域之间进行数值结果的对比分析&#xff0c;下列属于比较类图表的是&#xff1f; A. 油量表 B. 词云图 C. 染色地图 D. 面积图 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处…

Windows下Qt5.14.2连接华为IoTDA平台

一、华为IoTDA简介 华为云物联网平台&#xff08;IoT 设备接入云服务&#xff09;提供海量设备的接入和管理能力&#xff0c;将物理设备联接到云&#xff0c;支撑设备数据采集上云和云端下发命令给设备进行远程控制&#xff0c;配合华为云其他产品&#xff0c;帮助您快速构筑物…

教师自费出书的注意事项有哪些?

备案主编专著的优势&#xff1a;&#xff08;qkfb88688&#xff09; 1、副高、正高职称最高学术成果 2、专著可以代替核心 3、周期短、出书快、可重复使用 4、双号齐全&#xff1a;ISBN&#xff5e;CIP 5、版权长期有效 教师自费出书有以下一些注意事项&#xff1a; 关于书稿&…

在CentOS 7上查看和管理内存使用情况

在Linux系统中&#xff0c;内存管理是一个至关重要的方面&#xff0c;尤其在生产环境中&#xff0c;了解系统内存的使用情况可以帮助管理员优化系统性能&#xff0c;检测内存泄漏&#xff0c;合理分配资源&#xff0c;从而确保系统的稳定运行。本文将详细介绍在CentOS 7系统中如…

每天一个数据分析题(三百五十一)-树状体系图

杜邦树状分析体系是将总指标根据指标关系拆解成各细分指标&#xff0c;从上到下依次排列形成树状结构。杜邦树状体系图的作用包括&#xff1f; A. 原因追踪 B. 进度管理 C. 预估影响 D. 鸟瞰全局 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此…

二、线性回归模型

目录 一、线性回归 1.模型示例 2.代码实验&#xff08;C1_W1_Lab03_Model_Representation&#xff09; (1).工具使用 (2).问题描述-房价预测 (3).输入数据 (4).绘制数据集坐标点 (5).建模构造函数 二、代价函数&#xff08;Cost function&#xff09; 1.解释一下概念…

mysql用户管理知识点

1、权限表 1.1、user表 1.1.1、用户列 Host、User、Password分别表示主机名、用户名、密码 1.1.2、权限列 决定了用户的权限&#xff0c;描述了在全局范围内允许对数据和数据库进行操作。 1.1.3、安全列 安全列有6个字段&#xff0c;其中两个是ssl相关的&#xff0c;2个是x509相…

敦煌网、ebay、速卖通等平台一直被差评怎么办?

在电商行业里一直都有一句话&#xff0c;有评行走天下&#xff0c;无评寸步难行 而没有review打造爆款的案例是少之甚少&#xff0c;众所周知&#xff0c;review已经成为用户衡量一件商品的标尺&#xff0c;目前我也是看到一个文章上面写到&#xff0c;一个卖家表示自己平时运…

形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现

背景&#xff1a; 新手在学习Python时可能会出现如下图所示的报错 下面分情况教大家如何解决 视频教程【推荐】&#xff1a; 形如SyntaxError: EOL while scanning string literal&#xff0c;以红色波浪线形式在Pycharm下出现 过程&#xff1a; 问题概述&#xff1a; 简单…

计算机视觉与深度学习实战,Python为工具,基于光流场的车流量计数应用

一、引言 随着科技的飞速发展,计算机视觉和深度学习技术在现代社会中的应用越来越广泛。其中,车流量计数作为智能交通系统的重要组成部分,对于城市交通管理和规划具有重要意义。本文旨在探讨以Python为工具,基于光流场的车流量计数应用,为智能交通系统的发展提供技术支撑。…

数据结构与算法-15_ B 树

文章目录 1.概述2.实现定义节点多路查找插入 key 和 child定义树插入分裂删除代码 1.概述 B树&#xff08;B-Tree&#xff09;结构是一种高效存储和查询数据的方法。B树主要思想是将每个节点扩展成多个子节点&#xff0c;以减少查找所需的次数。B树结构非常适合应用于磁盘等大…

golang结构与接口方法实现与交互使用示例

1.定义结构 // 结构定义 type VideoFrame struct {id inthead []bytelen int64data []byte } 2.实现结构方法 // 生成结构字段的get与set方法 // func (v *VideoFrame) Id() int {return v.id }func (v *VideoFrame) SetId(id int) {v.id id }func (v *VideoFrame) He…

React中使用 ts 后,craco库配置别名时需要注意什么?

文章目录 前言编译报错如下解决方式总结 前言 我们都知道craco库可以用来覆盖react配置&#xff0c;如设置别名等。但是在项目使用 Typescript 后&#xff0c;我们需要额外配置&#xff0c;否则会造成编译报错。 详细craco配置可以查看之前文章&#xff1a; 项目初始化与配置…

JDBC是什么?它如何工作?

一、JDBC概述 JDBC&#xff08;Java Database Connectivity&#xff09;是Java语言与数据库之间进行交互的API。它允许Java程序通过SQL&#xff08;结构化查询语言&#xff09;来执行各种数据库操作&#xff0c;如查询、更新、删除等。JDBC是Java应用程序访问数据库的标准方式…