C++基础-编程练习题及答案

文章目录

  • 前言
  • 一、查找“支撑数”
  • 二、数组元素的查找
  • 三、爬楼梯
  • 四、数字交换
  • 五、找高于平均分的人


前言

C++基础-编程练习题和答案


一、查找“支撑数”

【试题描述】
在已知一组整数中, 有这样一种数非常怪, 它们不在第一个, 也不在最后一个, 而且刚好都
比左边和右边相邻的数大, 你能找到它们吗?
【输入要求】
第一行为整数 m, 表示输入的整数个数。 ( 3≤ m ≤100 ) 第二行为 m 个整数。
【输出要求】
若干个支撑数, 每行一个。
【输入样例】
14
1 3 2 4 1 5 3 9 7 10 8 23 85 43
【输出样例】
3
4
5
9
10
85

#include <bits/stdc++.h>
using namespace std;
/*
在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和右边相邻的数大,你能找到它们吗?
*/
int main() { 
	//定义变量m
	int m;  
	cin >> m; // 输入整数的个数  
	
	if (m < 3 || m > 100) {  
		cout << "输入的整数个数不符合要求!" << endl;  
		return 1;  
	}  
	//定义m个元素的数组
	int nums[m];  
	for (int i = 0; i < m; ++i) {  
		cin >> nums[i]; // 输入整数  
	}  
   // 遍历整数数组,跳过第一个和最后一个元素
	for (int i = 1; i < m - 1; ++i) {   
		if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {  
			// 如果当前数比左右两边的数都大,则是支撑数  
			cout << nums[i]<<endl;  
		}  
	}  
	
	return 0;  
}

二、数组元素的查找

【试题描述】
给你 m 个整数, 查找其中有无值为 x 的数, 输出 x 一共有几个.
【输入要求】
第一行一个整数 m: 数的个数 ( 0 ≤ m ≤ 100 )
第二行 m 个整数(空格隔开) ( 这些数在 0-999999 范围内 )
第三行为要查找的数 x
【输出要求】
一个整数, 表示 x 的个数。
【输入样例】
7
10 21 3 3 5 3 7
3
【输出样例】
3

代码如下:

#include <bits/stdc++.h>

using namespace std;  
/**
 * 给你 m 个整数, 查找其中有无值为 x 的数, 输出 x 一共有几个.
 * @return 
 */
int main() {  
	int m;  
	cin >> m; // 读取整数个数  
	
	// 创建一个大小为m的整数数组
	int nums[m];
	for (int i = 0; i < m; ++i) {  
		cin >> nums[i]; // 读取每个整数  
	}  
	
	int x;  
	cin >> x; // 读取要查找的数x  
	
	int count = 0; // 初始化计数器  
	// 遍历整数数组 
	for(int i=0;i<m;i++){		
		if (nums[i] == x) { // 如果找到与x相等的数  
			++count; // 计数器加1  
		}  
	}  
	
	cout << count << endl; // 输出x的个数  
	
	return 0;  
}

三、爬楼梯

【试题描述】
有一段楼梯有 n 级台阶,规定每一步只能跨一级或两级,要登上第 m 级台阶有几种不同的走法?
(n<=1000, m<n)
【输入要求】
一行, 两个正整数 n 和 m。
【输出要求】
一个整数
【输入样例】
10 4
【输出样例】
5

#include <bits/stdc++.h>

using namespace std;  
/*
有一段楼梯有 n 级台阶,规定每一步只能跨一级或两级,要登上第 m 级台阶有几种不同的走法?
*/

int main() {  
	int n, m;  
	cin >> n >> m;  
	
	// 这里n是楼梯的总级数,但根据题目要求,我们只需要计算到达第m级台阶的方法数  
	
	if (m <= 2) {  
		return m;  
	}  
	//定义m级台阶走法数组
	int dp[m];
	//一级台阶1种走法
	dp[0] = 1;  
	//二级台阶2种走法
	dp[1] = 2;  
	//第i级台阶走法=第i-1级台阶走法+第i-2级台阶走法
	for (int i = 2; i < m; ++i) {  
		dp[i] = dp[i - 1] + dp[i - 2];  
	}  
	//第 m 级台阶的走法数
	cout << dp[m - 1] << endl;  
	
	return 0;  
}

四、数字交换

【试题描述】
有一组数(设有 N 个) 。 有 M 组操作,每组操作交换给定的两个数.编一程序输出经过 M 次
交换后的数组。
【输入要求】
第一行, 两个数 N, M(不超过 20 个)
第二行 N 个数, 由空格分开
从第三行开始连续有 M 行, 每行 2 个数字(即 M 组数) 。
以其中一行数字举例: 比如 3 5 表示第三个数和第五个数交换。
【输出要求】
交换后的一行数(中间用空格隔开)
【输入样例】
16 2
3 6 11 45 23 70 67 34 26 89 90 15 56 50 20 10
3 5
13 15
【输出样例】
3 6 23 45 11 70 67 34 26 89 90 15 20 50 56 10

#include <bits/stdc++.h>

using namespace std;  
/**
  有一组数(设有 N 个),有 M 组操作,每组操作交换给定的两个数.编一程序输出经过 M 次交换后的数组。
 */
int main() {  
	int n, m;  
	cin >> n >> m; // 读取数组长度和操作次数  
	//定义数组
	int nums[n];  
	for (int i = 0; i < n; i++) {  
		cin >> nums[i]; // 读取初始数组  
	}  

	// 执行交换操作  
	for (int i = 1; i <= m; ++i) {  
		int index1, index2;  
		cin >> index1 >> index2; // 读取需要交换的两个数的索引  
		index1=index1-1;
		// 注意:C++中的数组索引是从0开始的,所以要将输入的索引减1  
		// tmp用于交换的中间变量 交换两个数  
		int tmp=nums[index1];
		nums[index1]=nums[index2 - 1];
		nums[index2 - 1]=tmp;
	}  
	
	// 输出交换后的数组  
	for (int i = 0; i < n; ++i) {  
		cout << nums[i] << " ";  
	}  
	
	return 0;  
}

五、找高于平均分的人

【试题描述】
全班 n 个同学的成绩需要按学号读入, 请找出所有高于班级的平均同学。
【输入要求】
两行, 第一行为一个正整数 n, 第二行为 n 个实数, 每个实数之间用一个空格分隔。
【输出要求】
一行, 输出高于班平均的同学的学号, 场宽为 10。
【输入样例】
5
92 97.5 93 87 89
输出样例
1 2 3

#include <bits/stdc++.h>

using namespace std;  
/**
  全班 n 个同学的成绩需要按学号读入, 请找出所有高于班级的平均同学。
 */
int main() {  
	int n;  
	cin >> n; // 读取学生数量  
	
	double scores[n];
	//循环读取n个学生数量
	for (int i = 0; i < n; ++i) {  
		cin >> scores[i]; // 读取第i个学生成绩  
	}  
	
	double sum = 0.0;  
	for (int i = 0; i < n; ++i) {  
		// 计算成绩总和  
		sum += scores[i]; 
	}  
	// 计算平均成绩  
	double average = sum / n; 
	//cout<<"平均分"<<average<<endl;
	
	for (int i = 0; i < n; ++i) {  
		if (scores[i] > average) {  
			// 输出高于平均分的同学学号,学号是从1开始的
			cout << setw(10) << (i + 1) << " ";   
		}  
	}  
	cout << endl; // 输出结束后换行  
	
	return 0;  
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一篇详解Git版本控制工具

华子目录 版本控制集中化版本控制分布式版本控制 Git简史Git工作机制Git和代码托管中心局域网互联网 Git安装基础配置git的--local&#xff0c;--global&#xff0c;--system的区别 创建仓库方式1git init方式2git clone git网址 工作区&#xff0c;暂存区&#xff0c;本地仓库…

将AI融入项目开发工作中去吧

目录 1.提高编写开发日报的效率 2.提高编写代码注释的效率 3.提高代码重构的效率 4.编写测试用例及测试报告 5. 协助进行代码走查与工作量分析 在AI元年后&#xff0c;作为一名程序员&#xff0c;相信各位友友已经深切地感受到了它带来的变革。作为一个从小白到资深码农的…

canvas识别路线

theme: jzman 视频说明 jvideo 前言 效果一 技术栈 htmljavascriptcsscanvas 项目主要功能上传一张地图&#xff0c;或者迷宫地图&#xff0c;通过canvas的一系列操作&#xff0c;并指定一个起点和终点&#xff0c;并找到到达终点最近的路线 迷宫找出口效果 正文 加载图像 首先…

芋道系统springcloud模块启动报错,枚举类不能为空

问题描述&#xff1a; Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-05-10 15:50:15.756 | ERROR 9120 | main [TID: N/A] o.s.b.d.LoggingFailureAnalysisReporter | ************************…

【C++】详细版 RAII技术的应用之智能指针(智能指针发展历程和简单模拟实现介绍)

目录 前言 一、智能指针有什么用&#xff1f; 二、什么是RAII(智能指针的底层思想)&#xff1f; 三、智能指针的发展历程以及模拟实现 1.auyo_ptr&#xff08;C98&#xff09; 2.unique_ptr&#xff08;C11&#xff09; 3.shared_ptr&#xff08;C11&#xff09; 前言 C中…

面向对象 03:类与对象的创建、初始化和使用,通过 new 关键字调用构造方法,以及创建对象过程的内存分析

一、前言 记录时间 [2024-05-10] 系列文章简摘&#xff1a; Java 笔记 01&#xff1a;Java 概述&#xff0c;MarkDown 常用语法整理 Java 笔记 11&#xff1a;Java 方法相关内容&#xff0c;方法的设计原则&#xff0c;以及方法的定义和调用 面向对象 01&#xff1a;Java 面向对…

使用com.google.common.collect依赖包中的Lists.transform()方法转换集合对象之后,修改集合中的对象属性,发现不生效

目录 1.1、错误描述 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;模拟代码 &#xff08;3&#xff09;运行结果 1.2、解决方案 1.1、错误描述 最近在开发过程中&#xff0c;使用到了com.google.common.collect依赖包&#xff0c;通过这个依赖包中提供的…

4D 成像毫米波雷达:新型传感器助力自动驾驶

1 感知是自动驾驶的首要环节&#xff0c;高性能传感器必不可少 感知环节负责对侦测、识别、跟踪目标&#xff0c;是自动驾驶实现的第一步。自动驾驶的实现&#xff0c;首先要能够准确理解驾驶环境信息&#xff0c;需要对交通主体、交通信号、环境物体等信息进行有效捕捉&#x…

2024-AIDD-人工智能药物设计-AlphaFold3

AlphaFold3&#xff5c;万字长文解读 AlphaFold3预测所有分子相互作用准确结构 AlphaFold3 自2021年AlphaFold2问世以来&#xff0c;科研工作者们便开始利用这一蛋白结构预测模型来详细描绘众多蛋白质的结构、探索新药。近日&#xff0c;Google DeepMind公司推出了其最新产品…

[附源码]石器时代_恐龙宝贝内购版_三网H5手游_带GM工具

石器时代之恐龙宝贝内购版_三网H5经典怀旧Q萌全网通手游_Linux服务端源码_视频架设教程_GM多功能授权后台_CDK授权后台 本教程仅限学习使用&#xff0c;禁止商用&#xff0c;一切后果与本人无关&#xff0c;此声明具有法律效应&#xff01;&#xff01;&#xff01;&#xff0…

《Python编程从入门到实践》day24

# 昨日知识点学习 创建外星人从一个到一行 # 主程序snipdef _create_fleet(self):"""创建外星人群"""# 创建一个外星人并计算一行可容纳多少个外星人# 外星人的间距为外星人的宽度alien Alien(self)alien_width alien.rect.widthavailable_sp…

Android 屏幕适配全攻略(上)-掌握屏幕单位,应对千变万化的设备

本文从 Android 开发中常见的长度单位 px、dp、sp 入手&#xff0c;详细介绍了它们的特点及转换关系。 接着深入探讨了屏幕尺寸、分辨率、像素密度等重要的屏幕指标&#xff0c;帮助读者全面理解它们之间的联系。最后&#xff0c;通过实例代码演示了如何在代码中进行单位转换&…

从头开始的建材类电商小程序开发指南

在当今数字化时代&#xff0c;小程序已经成为了许多企业推广和销售的重要渠道。对于建筑材料行业来说&#xff0c;开发一个属于自己的小程序商城不仅可以提升产品曝光度&#xff0c;还可以提供更好的用户购物体验。下面&#xff0c;我们将逐步教你如何开发建筑材料行业小程序。…

【c++算法篇】双指针(下)

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;算法笔记仓 朋友们大家好啊&#xff0c;本篇文章我们来到算法的双指针的第二部分 目录 1.有效三角形的个数2.查找总价格为目标值的两个商品3.三数之和4.四数之和5.双指针常见场景总结 1.有效三角形…

【Linux】Linux——Centos7安装Nginx

不需要安装包 1.安装依赖 #查看 C 环境是否安装gcc -v #查看 zlib 是否安装cat /usr/lib64/pkgconfig/zlib.pc #查看 pcre 是否安装pcre-config --version 2.安装C #安装C yum install gcc-c 3.安装pcre yum install -y pcre pcre-devel 4.安装zlib #安装 yum install -y zlib…

西米支付:数字藏品元宇宙的介绍与骗局套路解析

一、什么是元宇宙&#xff1f; 元宇宙是一个集体虚拟共享空间&#xff0c;由虚拟增强的物理现实和物理持久的虚拟空间融合而创造&#xff0c;包括所有虚拟世界、增强现实和互联网的总和。简单地说&#xff0c;元宇宙是Web3.0时期的数字世界。 这类新兴概念被非法分子包装后&am…

libssh C++封装之六(Dir)

1 概述 libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。 libssh下载地址 3 实现 3.5 Dir Dir类型管理远程路径,通过SFTP和Channel实现(有…

Java入门基础学习笔记14——数据类型转换

类型转换&#xff1a; 1、存在某种类型的变量赋值给另一种类型的变量&#xff1b; 2、存在不同类型的数据一起运算。 自动类型转换&#xff1a; 类型范围小的变量&#xff0c;可以直接赋值给类型范围大的变量。 byte类型赋值给int类型&#xff0c;就是自动类型转换。 pack…

20240503安装HEVC解码器播放H265格式的8K视频

20240503安装HEVC解码器播放H265格式的8K视频 2024/5/3 9:55 缘起&#xff1a;由于youtube支持8K视频了&#xff0c;想尝尝鲜&#xff01; 主摄像头当然是选择SONY的【夜摄/弱光场景】&#xff0c;根据优选&#xff0c;小米&#xff08;MI&#xff09;13Ultra 最佳了。 在开始播…