- 博客(22)
- 收藏
- 关注
原创 利用函数指针实现a和b的不同计算-指针与函数
在`main()`函数中,首先定义了四个指针变量`pointer_1`、`pointer_2`、`pointer_3`、`pointer_4`,分别指向输入的第一个整数`i`、第二个整数`j`以及用户选择的选项`n`和结果`k`。然后通过`cin`分别输入选项`n`以及整数`i`和`j`。接着调用`swap()`函数,根据选项的不同计算出相应的结果,将结果存储在形参指针`p4`所指向的内存单元中。在`swap()`函数中,使用`if`语句根据形参指针`p3`所指向的选项值对`a`和`b`进行比较。
2023-12-20 17:48:30
496
原创 指针求最大值和次大值-指针与一维数组
最后交换`k`所对应的元素和当前外层循环指针`i`所对应的元素,将当前最大值放在正确的位置上。在`main()`函数中,首先通过`cin`输入数组的大小`n`,然后定义了大小为`n`的数组`a`。通过`cin`逐个输入数组的元素。所以在输出最大的两个元素时,应该输出经过排序后的数组的前两个元素,即`a[0]`和`a[1]`。这段代码实现了一个函数`LargestTow()`,用于找出给定整数数组中的最大的两个元素,并将它们分别存储到形参指针`pfirst`和`psecond`所指的内存单元中。
2023-12-20 17:45:58
675
原创 指针实现一维数组逆序-指针与一维数组
在`inverse`函数中,定义了两个指针`start`和`end`,`start`指向数组的起始位置,`end`指向数组的末尾位置。通过一个循环,每次交换`start`和`end`指针所指向的元素,然后`start`指针向后移动一位,`end`指针向前移动一位,直到`start`指针大于等于`end`指针,即完成了整个数组的逆序操作。在`main`函数中,首先通过`cin`输入数组的大小`n`,然后定义了一个大小为`n`的数组`arr`,并通过`cin`依次输入数组的元素。逆序输出n个整数,空格分隔。
2023-12-20 17:37:04
939
原创 使用链表学生信息输入输出c++
接下来,在`main`函数中定义了一些变量,包括头结点`head`、尾结点`tail`和临时节点指针`p`。同时,使用`sizeof`运算符计算出结构体`stud_node`的大小,并用变量`size`保存。这个结构体包含了学号`num`、姓名`name`、成绩`score`以及一个指向下一个节点的指针`next`。输入多行,直到一行开始输入0结束,每行包括,学号(长度小于等于9),姓名(长度小于等于100),成绩,空格分隔。按照输入顺序输出每位学生信息,一行一个学生信息,学号,姓名,成绩,空格分隔。
2023-12-20 17:20:37
724
原创 素数回文c++
然后,代码定义了一个辅助函数`miller_rabin`,用于判断一个数是否为素数。通过循环10次,随机选择一个大于等于2且小于x-2的底数,判断该底数的p-1次幂对x取模的结果是否等于1。通过循环将a和b进行相乘,取结果对mod的模,并返回最终的结果。最后,代码调用`miller_rabin`函数判断a是否为素数,并根据判断结果输出相应的结果。输出一行字符串,如果t的回文数仍是素数,则输出“prime”,否则输出"noprime"。在main函数中,代码首先读取输入的字符串s,表示待判断的素数。
2023-12-20 17:16:46
743
原创 汉诺塔问题c++
据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘,大梵天命令僧侣把圆盘移到另一根柱子上,并且规定:在小圆盘上不能放大圆盘,每次只能移动一个圆盘。该函数接受四个参数:n表示当前剩余的圆盘数量,source表示起始柱子,auxiliary表示辅助柱子,target表示目标柱子。在main函数中,代码首先读取输入的圆盘数量n,并分别读取起始柱子、辅助柱子和目标柱子的标识字符。当圆盘数量为1时,即n等于1,代码直接输出移动的步骤,即将起始柱子上的圆盘移动到目标柱子上。
2023-12-20 17:08:20
819
原创 排列函数重载c++
用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现。第二行,输出n个浮点数的升序排列,以空格间隔,并以空格结尾。第一行,输出n个整数的升序排列,以空格间隔,并以空格结尾。第三行输入n个浮点数,空格分隔。第二行输入n个整数,空格分隔,第一行输入一个整数n,
2023-12-20 17:02:59
420
原创 c++指针问题
指针的地址和所指向的对象是紧密联系的,尤其是在使用指向常量的指针时,需要确保指针所指的对象的生命期大于等于指针在使用期间。4. 悬空指针:悬空指针是指不能访问到有效的内存地址的指针。7. 野指针和释放后指针:避免使用野指针和释放后的指针,它们都是指向无效内存的指针,可能导致程序崩溃或者内存错误。指针常量(int * const p2)表示指针常量,即指针所指向的地址不可以更改,指针所指向的值可以修改。常量指针(const int *p1)表示指向常量的指针,即指针所指向的值不可以修改,而指针本身可以修改。
2023-12-20 12:29:00
1041
原创 矩阵的转置c++
这里注意到输出时行列互换的关系,即先输出矩阵的第一列元素,再输出矩阵的第二列元素,以此类推。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。最后,为了满足转置矩阵的格式要求,当内层循环结束时,即一列的元素都输出完毕后,根据当前的列数判断是否需要输出换行符。KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。首先,代码通过cin流读取输入的矩阵的行数和列数,分别存储在变量x和y中。
2023-12-19 23:03:38
618
原创 每月天数(包括闰年)c++
接下来,程序使用switch语句根据输入的月份(month)进行判断。程序使用if语句判断是否为闰年,如果是则输出29天,否则输出28天。其中,判断闰年的方法是:如果该年份能同时被4整除但不能同时被100整除,或能同时被400整除,则是闰年。小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。如果输入的月份是4、6、9、11月,则输出30天。输入一行,包含两个整数,分别表示一个日期的年、月。输出一行,包含一个整数,表示输入月份有多少天。
2023-12-19 23:00:02
1919
原创 年龄计算问题c++
如果是,则表示生日的日期已经过了当前日期的日期,需要将月份(m1)减一,并根据不同的月份(2、4、6、9、11)计算实际的日期(d)。如果是,则表示当前日期的月份已经过了生日的月份,需要将年份(y1)减一,并计算实际的月份(m)和年龄(y)。输入一个学生的生日(年,月,日)和当前日期(年、月、日),计算该生的实足年龄(?程序首先定义了一些变量,包括学生的生日(y0、m0、d0)、当前日期(y1、m1、d1)、年龄(y)、月份(m)和日期(d)。两行,第一行,三个整数,空格分隔,分别为出生的年月日,
2023-12-19 22:57:20
1794
原创 输出水仙花数c++
输出水仙花数:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。计算输出所有三位数中的水仙花数。在循环中,通过取余和整除操作将当前遍历的数分解成个位、十位和百位上的数字,并将它们分别赋值给变量a、b和c。然后,程序判断是否满足水仙花数的条件,即将各位数字的立方相加,如果等于原数i,则说明这个数是水仙花数。在这种情况下,程序通过cout语句将该水仙花数输出。输出所有三位数中的水仙花数,每行输出一个。这段代码是用于输出三位水仙花数的程序。
2023-12-19 22:54:40
657
原创 有序序列判断c++
接下来,使用for循环逐个读取序列中的整数,并在读取每个整数后,使用if语句判断该整数与前一个整数的大小关系,若该整数大于前一个整数,则将flag1设为1,表示该序列为递增有序序列,反之将flag2设为1,表示该序列为递减有序序列。最后,根据flag1和flag2的值输出序列的有序状态,如果仅有一个flag被激活,则说明输入序列是有序序列,反之则是无序序列。输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。第二行输入N个整数,用空格分隔N个整数。
2023-12-19 22:52:05
440
原创 求斐波那契数列前N项和c++
接下来,从标准输入读取要计算的斐波那契数列的第n项的值。然后,使用for循环从第三项开始遍历到第n项,通过不断更新x1和x2的值,计算当前项的值,并将结果保存到sum中。程序首先定义了变量x和sum,其中x用于保存输入的数值n,sum用于保存计算结果。另外,定义了变量i、x1和x2,分别用于循环计数、保存前两项的值和保存当前项的值。斐波那契数列是一个数列,每一项都等于前面两项的和。求fib数列的第n项,前几项是1,1,2,3,5,每一项都等于前面两项的和。循环结束后,输出sum(即第n项的值)。
2023-12-19 22:48:47
1087
原创 向量点积计算c++
这段程序是用来计算两个n维向量的点积的,输入的向量分别是a和b,其中a向量的各个分量保存在数组a中,b向量的各个分量保存在数组b中。接下来,利用for循环从标准输入读取a向量和b向量的各个分量,将它们逐一存储到数组a和b中。然后,定义变量k为点积的结果初始值为0,接下来,使用一个for循环计算两个向量的点积,实现方式为:对于每个i,将a[i]和b[i]相乘,将结果累加到变量k上。给定两个n维向量a =(a1,a2,...,an)和b =(b1,b2,...,bn),求点积。一个整数,即两个向量的点积结果。
2023-12-19 22:45:52
1124
原创 百鸡问题Pro
小明很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;然后判断条件:小鸡数量xiao大于等于0、小鸡数量xiao能够整除z并且公鸡数量gong乘以公鸡价格x加上母鸡数量mu乘以母鸡价格y再加上小鸡数量xiao除以z等于总预算n。给定公鸡的价格x元,母鸡的价格y元,小鸡的价格每z只鸡1元。现在有n元,买了m只鸡,要求计算共有多少种购买方案。首先,代码从标准输入依次读取公鸡价格x、母鸡价格y、小鸡价格z、总预算n和购买的鸡的数量m。
2023-12-19 22:41:39
760
原创 百元买百笔问题
循环的取值范围分别为[1, n/3],[1, n/2]和[1, n*2],保证了每种笔至少买一支。如果存在多个答案,每行输出一组答案,3个整数,空格间隔,分别表示钢笔、圆珠笔、铅笔各买多少。满足条件为:用n元买n支笔,其中钢笔的单价为3元,圆珠笔的单价为2元,铅笔的单价为0.5元,要求每种笔至少买一支。Kiki⽤n元买n⽀笔,单价:钢笔3元,圆珠笔2元,铅笔0.5元问:各买多少⽀(每种笔⾄少⼀支)。如果满足这两个条件,就输出当前的钢笔数量、圆珠笔数量和铅笔数量,并将计数变量m加1。
2023-12-19 22:38:15
748
原创 数字黑洞问题
在每一次循环中,它将整数n的个位数a、十位数b和百位数c提取出来,并更新n的值为将这三个数字重新排列后得到的数值。具体操作是,通过交换操作使得a、b和c按照从小到大的顺序排列,然后将c乘以100,b乘以10,a保持不变,最后得到新的n的值。试试看,重新排列352,得到的最大数为532,最小数为235,它们的差是297: 变换297,得到972- 279 = 693;例如,352是符合要求的,112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。
2023-12-19 22:32:08
849
原创 C++ 最大公约数代码
这是一个用欧几里得算法求解最大公约数的程序。程序首先读取两个整数m和n,并计算它们的余数r,然后进入一个循环,直到余数r为0为止。在每一次循环中,将m的值赋给n,将n的值赋给r,重新计算余数r。最后输出的n即为m和n的最大公约数。最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。给你两个数,请输出他们的最大公约数。输入一行,包含两个正整数A,B。输出一行,包含一个正整数。
2023-12-19 22:29:13
1029
原创 C++的简单基础知识
自学能力:C++是一门广泛应用的语言,它的知识和技术在不断演进。保持对新技术和工具的了解,并跟随C++社区的发展,将使你处于一个更好的竞争优势。函数定义:C++中的函数可以在主函数的内部定义,也可以在头文件或实现文件中定义。综上所述,C++代码的基本组成包括注释、头文件、命名空间、主函数、函数定义、类定义和控制结构等方面,这些部分组合起来可以实现不同的功能和应用。开源软件贡献者:C++有丰富的开源软件库和框架,你可以成为这些开源项目的贡献者,提供代码、修复bug、改进功能等,为开源社区做出贡献。
2023-10-02 12:26:07
78
1
原创 有关二进制的基本讲解
二进制数据是用0和1两个数字来表示的数。现在有一个二进制数 1001 0110 转为八进制就是从左往右每三位为八进制数的一位,分割出来就是10 010 110,(八进制满8进一,二进制的每三位数字刚好是7)补码:正数的补码就是其本身,负数的补码就是在原码的基础上,符号位不变,其余各位取反,最后 +1。原理:即从右到左数,二进制的1111每一位代表的是1 2 4 8,转为十进制就是1 + 2 +4 + 8=15。反过来转2进制同理,8进制的每一位代表的是三位二进制,16进制的每一位代表的是四位二进制。
2023-10-02 12:15:46
565
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人