C++实训
文章平均质量分 73
C++专栏
B612_Q
这个作者很懒,什么都没留下…
展开
-
2022.5.1练习
计算A+B题目内容:计算两个整数A和B的和。输入格式:输入整数A和整数B的值,用空格隔开输出格式:输出A+B的结果输入样例:1 2输出样例:3#include <iostream>using namespace std;int Add (int a, int b){ int c = a + b; return c;}int main(){ int a, b; cin >> a >> b; //cout <原创 2022-05-04 19:12:10 · 9673 阅读 · 0 评论 -
犯二的程度
任务描述本关任务:编写函数 silly,计算整数(不多于100位)犯二的程度并返回。数字也可以“犯二”,一个整数“犯二的程度”定义为:该数字中包含2的个数与其位数的比值,如果这个整数是负数,则程度增加0.5倍,如果还是个偶数,则再增加1倍。例如,数字−56782223456是个11位数,其中有3个2,是负数,也是偶数,则它的犯二程度为:3/11×1.5×2,约为0.818182。相关知识由于 C 和 C++ 中 int 类型的表示范围有限,为−2147483648~2147483647,原创 2022-02-16 01:59:25 · 4356 阅读 · 4 评论 -
猴子选大王
任务描述本关任务:编写一个函数 king,实现猴子选大王的功能。新猴王的选择方法是:让 N 只候选猴子围成一圈(最多100只猴子),从某位置起顺序编号为 1 ~ N 号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。相关知识针对上述任务的描述,我们假设 N 只猴子分别占据数组 a 的下标从 1 ~ N 的位置(0号位置空着),从序号为1的猴子开始报数。返回值为猴王的序号。本关可以把数组当作循原创 2022-01-10 11:43:11 · 1742 阅读 · 1 评论 -
【C&C++】数组作为函数的参数
编写函数 maxIncrease,用于计算一个销售额序列中的最大销售增幅并返回。这里的销售额都是非负整数。对于给定的销售额序列 A,假设序列 A 的长度为 ,最大销售额增幅是指满足的的最大值。例如,销售额序列11,3,5,7,9,2,4,6,8,10的最大增幅为8(在, 时)。...原创 2022-01-08 19:20:39 · 3392 阅读 · 1 评论 -
【C&C++】一维数组
假定有一组数据记录着卖场每天(不超过30天)的销售额(假设都是整数),要求你统计并输出销售的波动情况,即计算每天相对于前一天的销售额的增减情况(即后项减前项的差值)。例如连续5天的销售额分别是:23 56 12 76 43,则销售波动情况的输出为:33 -44 64 -33。其中:33 = 56 - 23,-44 = 12 - 56,以此类推。一段时间内每天销售额的记录需要由一组数据来完成,其中,数据的个数可能为0到30中的任何一个数,尽管我们可以用30个变量来存储它们,但这显然很不方便。使原创 2021-07-02 20:00:23 · 2195 阅读 · 1 评论 -
【C&C++】递归求P函数
编写函数 funP,完成数学函数P(n,x)函数的计算,定义如下:递归是一个很常见的数学概念,很多数学函数本身就是递归的,例如著名的斐波那契数列,又称黄金分割数列:0、1、1、2、3、5、8、13、21、34、……斐波那契数列递推的方法定义:,,同样可以用递归函数计算斐波拉契数列第 n 项 (不考虑第0项) :// 递归函数fib:计算斐波拉契数列第 n 项并返回int fib(int n){ // 递归终止,直接返回 if(n == 1 || n == 2)原创 2021-07-02 17:37:02 · 4048 阅读 · 0 评论 -
【C&C++】递归函数
输入一个正整数,然后把该整数的每一位数字从高位到低位顺序输出,每个数字占一行。例如:输入:123,程序输出:1.12.23.3对于将一个整数各位数字拆开的问题,由于该数字的位数未知,采用取余的方式也只能获得最低位,最高位很难获取。而这里要求先输出最高位,所以不能用循环实现。递归函数可以很好的解决这个问题。递归函数直接调用自己或通过其它函数间接调用自己的函数称为递归函数。 递归函数适合于求解递归问题,所谓递归问题:是指一类比较复杂的问题,其问题的解决又依赖于类似问题的解决,只不过后者原创 2021-07-02 12:34:39 · 2255 阅读 · 3 评论 -
【C&C++】打印日历
根据输入的年份和月份来输出该年月的日历。上图中每个汉字(一、二…日)占四个字节,右对齐,由于汉字显示本身就占2个字节,所以只需要在汉字前面多输出两个空格就好了。每个日期数字占4个字节,也是右对齐,这样能使输出的日历上下对齐。 剩下的事情就是循环输出这个月的所有日期了,这个月有多少天可以专门用一个函数实现,注意闰年二月(判闰年的函数这里又可以用一次了)是29天。 在 1 号前应该留多少空位(如果 1 号是星期 n ,则留 n-1 个空位,每个空位是一个日期的宽度),注意什么时候换行(日期加 1号前空位原创 2021-06-29 00:30:21 · 11544 阅读 · 11 评论 -
【C&C++】这天是星期几?
任务描述本关任务:编写函数 whatDay,计算某年某月的1号是星期几并返回。相关知识要知道某一天是星期几,可以用已知的某一天进行推导。例如,已知公元1年1月1日是星期一,公元2年1月1日则是在星期一基础上加上一整年的天数(要考虑闰年,闰年一年366天,非闰年365天),如果不是1月,例如7月,则要加上1到6月的所有天数,这里也要考虑闰年,因为闰年的二月是29天,非闰年是28天。这样就可以算出从公元1年1月1日到该年月过了多少天,而过了7天星期不变,所以可以用这种方法推导出公元元年之后的任何一天是原创 2021-06-12 22:12:07 · 7671 阅读 · 12 评论 -
【C&C++】时间显示(参数传值和参数传引用)
任务描述:编写一个函数 whatTime,该函数通过秒表显示的秒数,计算当前的时间(几点几分几秒),计算得到的时间通过参数返回。相关知识内容涉及传引用,是 C++ 对 C 语言的扩充部分, C 语言不包括这部分内容。由于 C++ 的函数只能返回一个值,而本题要求返回当前时间(几点几分几秒),需要返回三个值,所以没法通过 return 语句一次返回(如果学了结构也可以把三个数据一起打包返回),但 C++ 函数参数提供了另一种返回值的方式:引用参数。函数调用时,需要进行参数传递,即把实参的值逐个传给对原创 2021-05-18 21:22:55 · 2496 阅读 · 0 评论 -
【C&C++】登月纸桥(函数调用)
要求编写一个函数,计算需要把纸折叠多少次(假设纸张足够大,可以无限次折叠),其厚度才能搭建一座登月纸桥,考虑到将来需要到更远的星球,所以函数需要根据具体距离计算纸张折叠的次数并返回。相关知识函数是一个命名的程序代码块,是程序完成其操作的一种功能单位。在程序设计中,有许多算法是通用的,例如求一个数的平方根,求一个三角函数等,经常会将这些算法定义为一个函数,这样在程序中需要这些算法的地方就可以直接使用(通过函数调用)它们了。虽然 C 和 C++ 的库函数已经提供了丰富的功能,但很多时候程序员还是需要根据原创 2021-05-18 11:44:27 · 7436 阅读 · 0 评论 -
【C&C++】循环结构(素数和)
要求输入 n(10≤ n ≤10000) 和 k(1≤ k ≤10),求 n 以内最大的 k 个素数,按降序排列并将和输出在最后。编程要求输入正整数 n 和 k,要求输出 n 以内最大的前 k 个素数,按降序排列并在最后输出它们的和。用循环控制结构来解决。素数范围是 2 到 n,因为要从大到小输出素数,所以可以从 n 循环到 2 ,使用 for 语句递减循环实现为:for (int i = n; i>=2; i--) ……第一次进入循环时 i 的值为 n,每次循环结束后 i 的值原创 2021-05-13 20:50:52 · 6259 阅读 · 2 评论 -
【C&C++】循环结构(判断素数)
要求:向程序输入一个正整数,请你判断该正整数是否是素数,如果是,则输出 Yes,否则输出 No。相关知识:素数素数,又称质数,是指在大于1的自然数中,除了1和它本身以外不能被其它数整除的数。最小的素数是2。素数由于其不能被等分的原因,有很多实际的应用,例如:汽车变速箱的齿轮的相邻的两个大小齿轮齿数一般设计为素数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障;在害虫的生物生长周期和杀虫剂使用之间的关系上,实验表明,素数次数地使用杀虫剂是最合理的,都是使用在害虫繁殖的原创 2021-05-12 21:47:34 · 5369 阅读 · 2 评论 -
【C&C++】循环结构:黑洞陷阱
要求:程序输入的一个小于1000且三个数字不全相等的整数,请你输出进入黑洞的重排求差过程。本问题又称“Kaprekar问题”。495 是一个很神奇的数,被称为黑洞数或者陷阱数。给定任何一个小于1000的正整数,经前位补0后可以得到一个三位数(两位数前面补1个0,一位数前面补2个0)。如果这个三位数的三个数字不全相等,那么经有限次“重排求差”操作(组成该数的数字重排后的最大数减去重排后的最小数),总会得到495。例如,对整数80,前位补0后得到080,重排后可以得到800,008。此时可以得到的最大数原创 2021-05-09 12:16:20 · 10133 阅读 · 5 评论 -
【C&C++】分支结构(重排最大数)
实验要求:输入一个1000(不包含1000)以内的正整数,首先将其补齐为三个数字(如果是两位数或者一位数,则前面补0),然后将这三个数字按不同顺序排列成一组数据,输出排列中最大的那个数。例如:如果输入249,可以重排出429,249,924,942等等,其中最大的应该是942,因此应输出942;如果输入的是14,则在前面补0得到014,据此可以重排出041,140,410等等,其中最大的应该是410,因此应输出410。相关知识参照前两篇分支结构:点击这里—点击这里。【要得到一个三位数的某个数字可原创 2021-05-08 21:38:53 · 9746 阅读 · 3 评论 -
【C&C++】分支结构(判断一年中的第几天)
要求:输入一个日期,如“ 2017 6 15 ”,计算这一天是这一年的第几天(1月1日是第一天)并输出。假设输入的都是合法的日期,但别忘了考虑闰年的情况。相关知识if 语句会根据对某个条件的判断结果,将程序的流程分为两支。将程序分为多个分支的语句:if-else 嵌套switch 语句if-else 嵌套多路分支的第一种实现方法就是使用 if-else 嵌套,即在 if 分支和(或者) else 分支中再嵌套 if-else 语句。例如:cin >> angle;原创 2021-05-07 11:35:12 · 7091 阅读 · 3 评论 -
【C&C++】判断闰年
要求输入一个年份,判断该年份是否是闰年,是闰年则输出 Yes,否则输出 No。相关知识编程时有时候需要根据某个条件是否满足来选择执行或不执行某些语句。C 和 C++ 的 if 语句可以实现这种根据条件判断来选择执行的功能。if 语句有两种形式,分别实现一路分支和两路分支。if 语句实现一路分支的基本方法是采用 if 语句:if (<条件表达式>) <语句>其语义为:如果<条件表达式>的值为非0 ( true ),即“真”,则执行<语句>,然后原创 2021-05-05 21:04:58 · 2341 阅读 · 1 评论 -
【C&C++】二进制数据的位运算(如何存储字符)
目标:【字符变量用来存储字符,一个字符占1个字节(8位),字符存储的其实是 ASCII 码表中所对应的整数,这些整数以 0-1 串来表示。】输入一个字符,输出该字符在内存中存储时对应的 0-1 串。例如:‘A’的 ASCII 码是65,对应的8位二进制 0-1 串是 01000001。相关知识通过位运算来获得一个字符对应的字节值(即8个位对应的 0-1 值)。首先介绍一下位运算的基本知识。位运算位运算允许在二进制位级别上对数据进行操作。C 和 C++ 支持 6 种不同的位运算符按位与两原创 2021-05-04 22:51:20 · 5630 阅读 · 2 评论 -
【C&C++】字符型数据的运算(如何实现循环加密)
目标对 26 个大写英文字母进行循环加密,输入一个大写英文字母(明文)和一个整数秘钥,输出用秘钥对该大写英文字母加密后的结果(密文)。相关知识存储英文字母需要用到字符型变量。C 和 C++ 将字符类型看成是一种短整型,每个字符数据对应一个整数值。如 Microsoft C++ 中的字符类型的取值集合为 ASCII 字符集, ASCII 为每个合法的字符定义了一个整数,该整数就是该字符在字符类型中的数值表示。C 和 C++ 中有3种字符类型:char 、signed char 和 unsigned c原创 2021-05-04 18:37:57 · 6786 阅读 · 0 评论 -
【C&C++】浮点型数据的运算
目标输入某人的身高(cm),计算 Ta 要保持标准身材体重的上限和下限(单位:kg),分别存入变量 up 和 low 中。相关知识为了计算的精确,有时候光保存计算结果的整数部分是不够的,这时候就需要使用浮点数了。C 和 C++ 中有 3 种浮点类型:float 、double 和 long double,均为有符号浮点数。浮点数类型浮点数运算浮点类型数据可以参与算术运算、关系运算、逻辑运算等。计算机有两套算术运算的单元:整型的和浮点类型的。如果两个操作数都是整型数据,则系统采用整型运算,运算原创 2021-05-04 10:22:26 · 3929 阅读 · 0 评论 -
【C&C++】整型数据的运算
目标程序输入苹果数 m 和人数 n,要求输出每个人平均可以分到多少个苹果,并将计算结果存入到变量 x 中。相关知识C 和 C++ 的程序中,每个数据对象都必须有确定的数据类型。计算机内存中的数据都是0、1串,例如下面这16位0、1组成的串。01000001 01000010同样的这一段0、1串,如果是8位整数,则是两个整数65和66;如果是字符,则是‘A’和‘B’;如果是16位整数,则是16706。同一串数据,赋予不同的类型就有不同的解释,就代表了不同的含义,所以数据对象都必须有确定的数据类型原创 2021-05-04 09:42:36 · 2453 阅读 · 0 评论 -
【C&C++】C++不同精度的PI
目标:输出不同精度的PI(程序给出的PI值为 3.14159265358979323846)。相关知识流输入输出也可以进行格式控制, C++ 中是通过流操纵算子来实现的。流操纵算子是在头文件 iomanip 中定义的,因此要使用这些流操纵算子,必须包含该头文件。// 包含流操作算子库#include <iomanip>C++ 的 iomanip 库提供了多种流操纵算子,来实现不同的格式控制功能,包括设置域宽、设置精度、设置和清除格式化标志、设置域填充字符、在输出流中插入空字符、跳过原创 2021-05-03 21:43:21 · 7280 阅读 · 0 评论 -
【C&C++】C++输入输出流
目标当输入一个生日时,如“1992 3 18”,程序输出相应的问好信息,如“Hello! 3 18 1992”。使用流对象进行输入输出是 C++ 对 C 语言在 I/O 上的扩展相关知识C++ 预定义了一些 I/O 流对象来实现输入输出,这些 I/O 流对象关联相应设备(键盘、显示器等)并实现程序和设备之间的数据传输。C++ 预定义的 I/O 流对象有4个:cout 、cin 、cerr 和 clog,其中:cout 代表标准输出流,关联显示器;cin 代表标准输入流,关联键盘;cer原创 2021-05-03 19:03:11 · 1071 阅读 · 0 评论 -
【C&C++】整数四则运算表达式的输出格式控制
目标用户输入两个四位数以内的整数,请你对两个整数进行四则运算(为保证除法能正确计算,输入的第二个整数不能为0),要求输出的四则运算表达式是完整对齐的。原创 2021-05-03 17:44:35 · 6587 阅读 · 1 评论 -
【C&C++】基本输入输出
目标程序接受一个输入字符,然后将该字符输出三遍,再输出一个!。标准输入输出函数库 stdio.hC 和 C++ 提供了一个标准输入输出函数库stdio.h。在程序中包含该函数库后,就可以使用其中的标准函数进行输入输出操作了。在程序中表示如下:// 包含标准输入输出函数库#include <stdio.h>字符的输入输出函数在 C 语言中,输入输出函数有着相当重要的地位,它是我们的程序与用户交互的唯一途径。标准输入输出函数库提供的函数总体上可分为格式化输入输出函数、单个字符输入输原创 2021-05-02 12:12:05 · 2333 阅读 · 0 评论