自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 C++作业

要求:编写一个字符删除函数 char *remove(char *str, char *chars),用 new 分配新的字符数组(大小为 str 的长度 +1),将 chars 中包含的字符从 str 中删除后存入该字符数组,并返回该字符数组。在这道题中我们使用了动态内存的分配,实际上可以不用两个动态内存分配,只需要记录下newstr的长度,并在输出时采用循环来输出数据。值得一提的是,new出来的newstr是一个指针,*newstr指的是指针指向的当前字符。输出:epihg9pkp。

2024-03-11 22:08:50 452

原创 oj约瑟夫问题(报数问题)

有n个人围成一圈,顺序从1开始排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。建议用循环链表实现。只有一个正整数n,(其中n的范围n>=3,n<=1000)。输出最后留下的人是原来的第几号。请注意行尾输出换行。

2023-12-25 20:53:44 543

原创 建立双向链表

准备工作,建立结构体。

2023-12-19 20:41:27 402

原创 oj 算法提高 6-9删除数组中的0元素

编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。然而,这样的写法有一个问题,就是如果有连续的0,i依旧会增加,从而错过了连续的下一个0,要修改这个算法,我们可以通过控制i++的条件来实现。这样删除了0之后,就可以判断原本i的位置是不是还是0了。第二行n个数,表示输入数组的元素,数之间以空格分隔。将调用此函数后得到的数组和函数返回值输出。

2023-12-06 21:10:04 68

原创 oj算法训练 数组查找及替换

给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。这里我们使用一个循环来寻找被b整除的值,n是不断变化的,所以不用担心范围问题。我们如何在删除的同时也使n这个变量做出变化呢?指针可以修改这个值本身,跳出函数后也依旧可以继续使用。3.如果元素在A到Z间,替换为字符。第一行为数组元素个数和整数b。该数组各元素按从小到大排序。1.删除被b整除的元素。

2023-12-06 20:03:39 60

原创 231117

若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,且A与B不相等,则称A和B为一对亲密数对。每一个亲密数对(A,B)占一行,两个数用空格分隔,且A < B。然后想着优化一下,不用那么多for循环,解决方案就是把每个数的fri数记为num,继续遍历数,找到与fri数相等的数,然后输出这个数i和num。然后再写遍历,出现了一个问题,第一次写的时候用了嵌套的for循环,导致计算量巨大计算机完不成计算。问题又出现了,就是会有重复的数,解决方案就是把该num存为a,让i不等于a时再输出。

2023-11-17 21:55:50 155

原创 231117 oj反置数

一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。输入格式:输入只有一行,包括两个整数,中间用空格隔开。输出格式:输出只有一行,即相应的结果。

2023-11-17 20:46:50 52

原创 231107 计算利润

【代码】231107 计算利润。

2023-11-17 15:01:39 30

原创 菜鸟39 插入一个数

方法2:从后往前,依次向后移动。是从最末尾开始移动,不然会覆盖前面的数字。要用一个循环然后j--!

2023-11-14 20:59:42 20

原创 两种排序方法

【代码】两种排序方法。

2023-11-14 20:24:37 25

原创 判断质数函数

1以下的都不是质数,所以先写了个if小于1时不是质数。还有就是i要小于等于sqrt(number)如果是质数就会输出1,不是质数就会输出0。

2023-11-13 20:40:05 34

原创 231108 oj二维数组操作

将数组中最大元素所在的行和最小元素所在的行对调,并输出对调后的数组;数组按n行n列的方式输出。在每行最后一个元素输出换行。输入一个整数n,定义一个二维整型数组(n×n),初始化该数组,将数组中最大元素所在的行和最小元素所在的行对调。n×n数组元素的值由scanf函数从键盘输入。的值并加上 1,并不是与其他元素进行比较。用max和min存储i的值,然后再进行比较。我的代码错误的地方在于。

2023-11-08 21:12:09 124 5

原创 蓝桥杯t278 数的统计

如序列:3,1,2,1,5,1,2。其中1就出现3次,2出现2次,3出现1 次,5出现1次。若干行,每行两个用一个空格隔开的数,第一个是数列中出现的数,第二个是该数在序列中出现的次数。该x的范围int不能完全涉及,long太大,于是我选择用了unsigned int,运行成功。你的任务是对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数。在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。第二行是n 个用空格隔开的正整数x,代表给定的序列。第一行正整数n,表示给定序列中正整数的个数。

2023-11-08 19:52:11 51 1

原创 231107

函数调用时,数组只用写他的名字 比如max(a,(数组名),n(数组大小))如果有,flag就为1,如果没有,flag就为0,从而实现最后的输出分叉。原理:将数字依次向右比较,若j+1小于j,则将a[j+1]和a[j]交换。设置一个flag,标志是否有需要输出的数。若查找失败:输出Not Found。若查找成功:输出第一次出现的下标。oj 在数组中查找指定元素。如何实现单线两种输出?i的作用只是一个标识。oj 求连续数列长度。

2023-11-07 21:23:14 73

原创 231106

我的思路:建立两个相同的数组,将a中数组填进b中数组从而实现循环右移。方法2:逆向排序,又正向排序。数组循环右移 oj数组1。

2023-11-06 23:56:31 77

原创 231105

计算一个字符串的长度:用strlen()(需添加头文件#include<string.h>)1.有参数列表 2.有返回值 3.有出口。第一个scanf中缓存了\n,我们需要把这个\n消除了才能继续存入。解决方法:加一个getchar()先写出口(即最后一步)

2023-11-06 22:36:16 140

原创 231101

getchar():意思是只读取一个字符,如果输入一串字符,也只会读一个,读到回车键时停止,可以通过这个功能来读入字符的数目。有两个队,应该把一个队的编号看作是固定的,然后移动另一个队的编号。例如:while((c=getchar())!如果是说需要把整个等式列出来的,需要用到数组。

2023-11-01 21:03:05 51 1

原创 231029

总之,由于下标从0开始,所以最大下标应该是实际元素个数j减1,即j-1。这样每次循环就可以输出reverse[]正确的顺序了。输入n个整数,从n个整数中找到其中的最大值并输出。这就是为什么初始化for循环下标k为j-1。第二行是n个用空格分隔的整数(可正可负)。c语言中判断不等于是!第一行是一个正整数n(n>=1)。oj十进制转化二进制。

2023-10-29 21:36:14 76 1

原创 231026

修改如下:c=(F<0)?程序优化:f>0和小于零可以改成三元运算符。保留小数:用%.nf n是需要保留的位数。oj 4.9 摄氏度和华氏度转化。

2023-10-29 21:01:14 33 1

原创 231028

已知一个数列的前三项分别为0,0,1,以后的每项都是其相邻的前三项之和,计算并输出该数列前n项(n

2023-10-29 12:36:59 198 1

原创 231025

for循环条件改为i

2023-10-25 21:13:41 31 1

原创 231024

然后再将r2的值赋给r1,rn的值赋给r2,相加即可得rn,以此类推即可求得每个月的兔子数。解决方法:找一个指示值,当break的时候这个指示值就会变化,通过这个指示值来输出i的值。cout必须放在循环里的原因是让他每次循环都回到0这个值,并且cout必须在外层定义。那么当i被某个j整除时,if语句判断成立,就会执行break,跳出内层for循环。关键是发现规律:前两个月兔子的数目之和等于第三个月的兔子数目。break语句的作用是终止当前循环,跳出循环。所以说,不要随便用break,他会终止整个循环。

2023-10-24 21:17:11 66

原创 231023

给每个数字标上序号,通过比较得他们的大小,其实完全可以直接通过一个一个交换做到从小到大排序(因为if运算有顺序,t可重复利用)1.本质是移动数字,将最小的放在x位上,所以只需要一点一点判断谁是最小的。1.首先要想到特殊情况,年分为闰年和平年,闰年的2月有29天。2.当闰年时候,如果输入的月份在2月份之前,那就不应该+1天。总结:有特殊时应该自己模拟一下流程,不要漏掉各种特殊情况。2.需要用到一个容器装数字,进行交换。

2023-10-23 21:49:38 30

原创 231021

2.加入math.h 使用函数pow(x,y)例如:10的n次方为pow(10,n)1.10的n次方如何表示?

2023-10-23 21:06:06 18

原创 231019

1.单字符串用char 引用时是%c;双字符用string 引用时是%s。除了public还有private,就是不能在类外使用的。2.保留小数%.保留的位数,注意位数前面有.然后调用,格式为:声明.变量名称。首先给他一个名称:类型 声明。

2023-10-19 22:15:19 15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除