- 博客(51)
- 收藏
- 关注
原创 自学C语言——操作符详解
操作符的分类二进制和进制转换原码、反码、补码位移操作符位操作符:&、|、^、~单目操作符逗号表达式下标访问[ ]、函数调用( )结构成员访问操作符操作符的属性:优先级、结合性表达式求值
2025-04-12 11:25:00
1024
原创 蓝桥杯真题——砍竹子(C语言)
.他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么用一次魔法可以,把这一段竹子的高度都变为。, 其中 [x]表示对 x 向下取整。小明想 知道他最少使用多少次魔法可让所有的竹子的高度都变为 1。这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 ii 棵竹子的 高度为。第一行为一个正整数 n, 表示竹子的棵数。对于20%的数据,保证n
2024-12-02 16:28:21
4927
3
原创 蓝桥杯真题——good-sequence(C语言)
现在给定 [a1,a2,...,an] ,求对于该序列的每一个后缀 [ak,ak+1,...,an](1≤k≤n)最少能划分成多少个好序列。当 k=1 时, 可划分为: [[1,1],[4],[5,1,4]]。当 k=2 时, 可划分为: [[1],[4],[5,1,4]]。当 k=3 时, 可划分为: [[4],[5,1,4]]。当 k=4 时, 可划分为: [[5,1,4]]。当 k=5 时, 可划分为: [[1],[4]]。当 k=6 时, 可划分为: [[4]]。
2024-11-10 14:14:46
812
原创 蓝桥杯真题——乐乐的序列和(C语言)
她的目标是从中挑选出一些宝石,使得选出的宝石数量为偶数,且这些宝石上的数字总和最大。如果不选任何宝石(即选出宝石数量为 00,也是偶数),总和为 00。根据题目要求,第一行输入一个整数N表示的总数即数组元素A的数量,第二行表示数组内元素的数,输出数组内偶数个元素的最大和。将数组内的数从大到小排序, 如果正数数量为偶,则答案为所有正数和;如果正数数量为奇数N,则答案为前N-1个数和与N+1个数和中较大者。第二行包含 N 个整数,表示每个宝石上刻的数字。输出一个整数,表示乐乐能获得的宝石的最大总和。
2024-11-05 19:18:48
604
原创 蓝桥杯真题——三角回文数(C语言)
对于正整数 n, 如果存在正整数 k 使得 n=1+2+3+⋯+k=k(k+1)2n=1+2+3+⋯+k=k(k+1)/2, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066=1+2+3+⋯+36366066=1+2+3+⋯+363。如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为回文数。例如, 66066 是一个回文数, 8778 也是一个回文数。如果一个整数 nn 既是三角数又是回文数, 我们称它为三角回文数。
2024-11-05 17:57:58
1565
原创 每天一道C语言精选编程题之删除指定的数
先输⼊10个整数存放在数组中,再输⼊⼀个整数n,删除数组中所有等于n的数字,数组中剩余的数组保证数组的最前⾯,打印剩余的数字。
2024-11-04 20:24:30
248
原创 蓝桥杯真题——小新的神秘宝石交换(C语言)
他想通过交换,使得他收集到的第一个宝石山的宝石亮度差异(最亮的宝石的亮度减去最暗的宝石的亮度)尽可能小。测试用例:小新可以选择第二层和第三层的宝石进行交换,然后再与第二个宝石山的第一层和第四层宝石交换,这样第一个宝石山的亮度变为 [2,2,3,2][2,2,3,2],亮度差异为 11。这两个宝石山的高度都是 NN,每一层都有一颗独特的宝石,那些宝石的亮度各不相同。第二行输入 N 个空格分隔的整数,表示第一个宝石山每一层宝石的亮度。第三行输入 N 个空格分隔的整数,表示第二个宝石山每一层宝石的亮度。
2024-11-04 19:15:43
749
原创 C语言——函数栈帧的创建和销毁(精简)
(stack frame)是函数调用过程中在程序的调用栈(call stack)中开辟的一块空间,用于存放函数参数、返回值、临时变量以及上下文信息。理解函数栈帧的创建与销毁对于深入理解程序的内存管理、函数调用机制以及局部变量的作用域等方面非常有帮助。
2024-11-03 10:44:59
445
原创 自学C语言——函数递归
递归是什么递归是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。递归的思想把一个大型复杂问题层层转化为一个与原问题相似,但规模较小的子问题来求解;知道子问题不能再被拆分,递归就结束了。所以递归的思想就是把大事化小的过程。递归的限制条件递归在使用的时候,有两个必要条件:递归存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后,越来越接近这个限制条件。
2024-11-02 18:47:34
1207
原创 自学C语言——VS实用调试技巧总结
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序; 程序员在写代码的时候,需要经常性的调试代码,就设置为debug,这样编译产生的是debug版本的可执行程序,其中包含调试信息,是可以直接调试的。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好的使用。当程序员写完代码,测试再对程序进行测试,直到程序的质量符合交付给用户使用的标准,这个时候就会设置为release,编译...
2024-10-30 20:36:30
777
原创 每天一道C语言精选编程题之判断回文字符串
输⼊⼀个字符串,判断这个字符串是否是回⽂字符串(字符串的⻓度⼩于等于30,字符串不包含空格),如果是回⽂字符串输出Yes,如果不是回⽂字符串输出No。
2024-10-29 20:41:13
270
原创 自学C语言——扫雷游戏(无递归)
扫雷游戏(入门)游戏说明可以通过游戏菜单实现继续游玩或者退出游戏扫雷格子数量为9*9随机在格子中布置10个雷排查雷不是雷——显示周围有几个雷是雷——游戏失败把所有非雷的格子找出来——游戏胜利
2024-10-29 20:14:18
511
原创 自学C语言——函数(全)
ret_type 函数返回类型 void表示不需要返回fun_name 函数名( )形式参数{ }函数体//写一个加法函数,完成2个整型变量的加法操作int z = 0;z = x + y;return z;int n2 = 0;return 0;
2024-10-24 20:59:13
1188
原创 每天一道C语言精选编程题之逆序字符串
因此,我们可以定义两个指针分别指向字符串⾸位和末位,对其进⾏交换操作,然后将两个指针相向移动⼀位,继续交换剩余字符。直⾄两个指针的相对位置发⽣变化时结束操作,最终得到的字符串即为逆序后的字符串。最中间的两位互换,或者字符串⻓度为奇数时,中间字符不变。输⼊⼀个字符串,写⼀个函数将⼀个字符串的内容逆序过来。第⼆位与倒数第⼆位互换;
2024-08-25 23:42:05
356
原创 每天一道C语言精选编程题之求求字符串长度【进阶版】
在递归函数中,函数会调⽤⾃⼰,并在每次调⽤中传⼊不同的参数,直到达到某个基准条件,然后递归结束并返回结果。输⼊⼀个字符串(字符串⻓度⼩于等于30,中间不包含空格),使⽤Strlen函数可以求字符串的⻓。1. 递归结束条件:递归必须有⼀个结束条件,否则会导致⽆限递归,最终导致堆栈溢出等问题。写⼀个函数Strlen,可以求字符串⻓度,除了函数的形参,函数中不能使⽤多余的变量。3. 递归传参:递归函数每次调⽤⾃⾝时,需要传⼊不同的参数,以处理不同的情况。2. 递归调⽤:字符串的⻓度=1+后⾯⼦字符串的⻓度;
2024-08-25 23:35:15
312
原创 每天一道C语言精选编程题之求字符串长度
指针是⼀种可以指向内存地址的数据类型,我们可以通过移动指针的位置来访问内存中的不同数据。在本题中,我们可以定义⼀个指向字符串开头的指针,并不断地移动它来计算字符串⻓度。中,以字符数组的形式存在,数组的最后⼀个元素是空字符'\0',⽤来表⽰字符串的结束。⽐如说字符串"hello",在内存中存储的形式就是'h'、'e'、'l'、'l'、'o'、'\0'。输⼊⼀个字符串(字符串⻓度⼩于等于30,中间不包含空格),使⽤Strlen函数可以求字符串的长度,并返回。⾸先,我们需要了解字符串的存储⽅式。
2024-08-25 22:55:59
394
原创 每天一道C语言精选编程题之printf两个整数的平均值
1. 两数本⾝和两数的平均数不会溢出,考虑平均数与其中⼀个数的差:(x+y)/2-x=(y-x)/2;2. 要求得 (x+y)/2,我们可以先求得 x 与 (y-x)/2,然后求得他们的和即可;输⼊2个整数m和n,写⼀个函数average,求2个整数的平均值,考虑整数过⼤溢出的问题。本题最直观的解法为:两数相加后除以⼆向下取整。不过因为整数过⼤时,两数相加会溢出的问题,3. x 与 (y-x)/2 在计算过程中都不会溢出,因此这个⽅法成⽴。
2024-08-19 23:55:49
398
原创 每天一道C语言精选编程题之交换两个整数
5. 在调⽤函数时,将需要交换值的两个整数变量的地址作为参数传递给函数,可以使⽤ & 运算符 来获取变量的地址。1. 定义⼀个函数 Swap ,参数是两个整型指针,表⽰需要交换值的两个整数变量的地址。明确函数的作⽤,即交换两个整数的值。写⼀个函数Swap,可以交换两个整数的内容。注意必须实现成函数完成。输⼊2个整数,调⽤⾃定义函数Swap,完成2个整数的交换。2. 在函数中,使⽤⼀个临时变量来存储第⼀个整数变量的值。3. 将第二个整数变量的值赋给第⼀个整数变量。4. 将临时变量的值赋给第二个整数变量。
2024-08-18 23:46:02
813
原创 每天一道C语言精选编程题之字符转换
输⼊⼀个字符串,将字符串中⼤写字⺟全部转为⼩写字⺟,⼩写字⺟转成⼤写字⺟,其他字符保持不变。1. 对于每个字符,我们检查它是⼤写字⺟、⼩写字⺟还是其他字符;注:字符串的⻓度⼩于等于30,其中字符串中包含空格。2. 如果它是⼤写字⺟,我们将其转换为⼩写字⺟;3. 如果它是⼩写字⺟,我们将其转换为⼤写字⺟;1. islower():判断字符是否为⼩写字⺟。2. isupper():判断字符是否为⼤写字⺟。3. tolower():将字符转换为⼩写字⺟。4. toupper():将字符转换为⼤写字⺟。
2024-08-18 23:43:09
423
原创 每天一道C语言精选编程题之空瓶子换汽水
两个空瓶⼦可以换到⼀瓶汽⽔和⼀个空瓶⼦,相当于⼀个空瓶⼦可以 喝到⼀瓶汽⽔,⽽最后⼀定会剩余⼀个空瓶⼦⽆法继续购买汽⽔。⽔已知1瓶汽⽔1元,2个空瓶可以换⼀瓶汽⽔,输⼊整数n(n>=0),表⽰n元钱,计算可以多少汽⽔。2. 每次将剩余的空瓶⼦ empty 除以 2,表⽰可以换取的汽⽔数量,将这些汽⽔数量加到 total 中。3. 将剩余的空瓶⼦ empty 除以 2 向上取整,表⽰剩余的空瓶⼦买了汽⽔后喝完剩下的空瓶⼦数量。每次尽可能地⽤空瓶⼦去换取汽⽔,直到剩余的空瓶⼦不⾜以再换⼀瓶汽⽔为⽌。
2024-08-15 23:38:49
576
原创 每天一道C语言精选编程题之printf菱形
1. ⾸先打印上半部分的菱形。需要注意的是,上半部分共有 n ⾏,第 i ⾏需要打印 2*i-1 个符号,⽽ 且这些符号需要居中对⻬。为了实现居中对⻬,我们可以在每⼀⾏的前⾯打印 n-i 个空格。与上半部分类似,下半部分共有 n-1 ⾏,第 i ⾏需要打印 2*(n-i)-1个符号,同样需要居中对⻬,并且需要在每⼀⾏的前⾯打印n - (n - i)个空格。来说,我们可以使⽤⼀个循环来遍历每⼀⾏,并使⽤另⼀个循环来打印空格和符号。输⼊⼀个整数n,打印对应2*n-1⾏的菱形图案。输⼊的整数n决定了图案的⼤⼩。
2024-08-15 23:28:59
521
原创 每天一道C语言精选编程题之自幂数
我们可以使⽤⼀个循环遍历 1~100000 并检查每个数是否为⾃幂数。写⼀个代码打印1~100000之间的所有的⾃幂数,中间⽤空格分隔。3. 判断 sum 与 i 是否相等,相等则 i 是⾃幂数。2. 计算 i 的每⼀位的 n 次⽅之和 sum;注:可以使⽤ pow 函数求得某个数的次⽅数。幂数,因为 1^3+5^3+3^3=153。1. 计算 i 的位数 n;⾃幂数是指⼀个数的位数的n次。
2024-08-15 23:25:21
436
原创 每天一道C语言精选编程题之四人推理盗窃者
真正的盗窃者只有⼀个,因此我们可以假设其中⼀⼈为盗窃者,通过对每个嫌疑⼈的供词进⾏分析, 逐⼀排除嫌疑⼈。• 如果D说真话,则C在胡说,即C说假话,盗窃者不是D;如果D说假话,则盗窃者不是C。某地发⽣了⼀件盗窃案,警察通过排查确定盗窃者必为4个嫌疑⼈的⼀个。• 如果A说真话,则盗窃者不是A;如果A说假话,则盗窃者是A。• 如果B说真话,则盗窃者是C;如果B说假话,则盗窃者不是C。• 如果C说真话,则盗窃者是D;如果C说假话,则盗窃者不是D。已知3个⼈说了真话,1个⼈说的是假话。
2024-08-12 23:57:39
484
原创 每天一道C语言精选编程题之排序整形数组
冒泡排序是⼀种基础的排序算法,其基本思想是⽐较相邻的两个元素,如果它们的顺序错误就交换它 们的位置,直到整个序列有序为⽌。2. 在对序列中的所有相邻元素都进⾏了⼀次⽐较之后,第⼀轮排序结束,此时最后⼀个元素已经是整个序列中最⼤的元素。1. 从序列的第⼀个元素开始,对相邻的两个元素进⾏⽐较,如果顺序错误就交换它们的位置,使较。若在某⼀轮排序中未进⾏交换操作,则当前序列已经是升序状态,可以结束排序。⼩的元素排在前⾯,较⼤的元素排在后⾯。
2024-08-12 23:54:13
461
原创 每天一道C语言精选编程题之计算最大值和最小值的差值
我们可以使⽤⼀个变量记录输⼊的数,在每次需要更新最值前,输⼊⼀个数与之进⾏判 断,从⽽避免了定义数组。然后我们通过循环,将剩余的 9 个数与当前的最⼤值和最⼩值进⾏⽐较,更新 max 和 min 的。在循环的过程中,⽤两个变量 max 和 min 分别记录当前已经输⼊的最⼤值和最⼩值,分别初始。我们可以使⽤⼀个循环来输⼊这10个整数并记录在⼀个数组中,然后使⽤另⼀个循环查找两个最。输⼊10个整数,写代码找出其中最⼤值和最⼩值,计算最⼤值和最⼩值的差,并打印出差值结果。值,直到所有的数都输⼊完毕。
2024-08-10 23:14:37
411
原创 每天一道C语言精选编程题之分数求和
计算 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - …+ 1/99 - 1/100 的值,并打印出结果。注:除法分为整数除法和 浮点数除法,要计算出⼩数,得采⽤浮点数除法,浮点数除法的操作数中⾄少要保证有⼀个浮点数。3. 对于奇数 i,将 1/i 加⼊到sum中,对于偶数 i,将 sum 减去 1/i。我们就可以得到所求的。在计算 1/i 时,需将除法转化为浮点数除法,可以将 1 写为 1.0 实现。1. ⾸先,我们可以定义⼀个变量sum来记录计算结果,初始值为0;可以⽤⼀个循环来计算。
2024-08-10 23:04:33
383
原创 自学C语言——数组(一)
1.数组的概念数组是一组相同类型元素的集合。数组中存放的是1个或多个数据,但是数组元素个数不能为0。数组中存放的多个数据,类型是相同的。数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。
2024-08-10 22:58:41
868
原创 每天一道C语言精选编程题之printf最小公倍数
最⼩公倍数是指两个或多个整数共有倍数中最⼩的⼀个。为了求出两个数的最⼩公倍数,可以采⽤枚 举试除法。2. 从⼩到⼤依次判断能否同时整除这两个数,若某个数满⾜同时被两个数整除,则其为公倍数;特别地,最⼩公倍数可以由两数乘积除以两数的最⼤公约数求得。3. 从⼩到⼤遍历找到公倍数时,此数即为最⼩公倍数,此时应当结束循环;1. 具体来说,公倍数⼀定⼤于两个数,从两个数中的较⼤值开始枚举;输⼊2个整数m和n,计算m和n的最⼩公倍数,并打印出结果。
2024-08-07 23:49:46
388
原创 每天一道C语言精选编程题之计算最大公约数
最后,通过数学归纳法证明,在辗转相除的过程中,每次都将较⼤的数除以较⼩的数取余数,余数⽐ 上⼀轮操作的被除数⼩,最终余数为0时,较⼩的数就是 a 和 b 的最⼤公约数。bq + r ,那么 d 也是 b 和 r 的公约数,因为 d 能整除 a 和 b ,所以 d 也能整除 a - bq ,学原理:如果 a 和 b 是两个正整数,且 a>b ,则a和b的最⼤公约数等于 b 和 a%b ( a 除以 b。假设我们已经知道a和b的最⼤公约数为 d ,即 d 是 a 和 b 的公约数,那么根据带余除法, a =
2024-08-07 23:43:45
538
原创 自学C语言——分支和循环应用(猜数字游戏)
猜数字游戏游戏要求1.电脑随机生成一个1~100之间的随机数2.如果猜小了,电脑提示:猜小了如果猜大了,电脑提示:猜大了如果猜对了,电脑提示:恭喜你,猜对了,游戏结束3.结束游戏后,可以重新游玩随机数生成rand函数,可以生成随机数
2024-08-05 17:49:31
607
原创 每天一道C语言精选编程题之判断三角形
判断三角形题目描述输⼊三个整数a,b,c,判断由a,b,c作为三条边组成的三⻆形,如果不能组成三⻆形则输出:⾮三⻆形;如果是三⻆形,再继续判断,如果是等边三⻆形,则输出:等边三⻆形;如果是等腰三⻆形,则输出:等腰三⻆形;否则输出普通三⻆形。输⼊:3 4 5输出:普通三⻆形输⼊:3 3 3输出:等边三⻆形输⼊:3 3 4输出:等腰三⻆形解法思路三⻆形的判断⽅法是:对于三条边⻓a、b、c,若任意两边之和⼤于第三边,那么就可以组成⼀个三 ⻆形,即a+b>c, a+c>b, b+c>a。
2024-08-03 23:33:09
568
原创 每天一道C语言精选编程题之printf素数
素数是指只能被1和它本⾝整除的正整数。使⽤C语⾔写⼀个程序打印100~200之间的素数,数字中间使⽤空格分割。
2024-07-31 17:05:17
481
原创 每天一道C语言精选编程题之printf乘法口诀表
*”是乘号,乘号前⾯和后⾯的数叫做因数,“=”是等于号,等于号后⾯的数叫做积。3. 然后使⽤ printf 函数打印出每⼀项,包括被两个因数和乘积,它们⽤空格隔开,并且使⽤ %2d 格式控制符将乘积左对⻬输出,使得每个乘积占两个字符宽度;2. 在内部循环中,我们⽤ j 迭代列号,从 1 到 i ,表⽰第 i ⾏中的第 j 列;4. 在打印完每⼀⾏后,需要继续打印⼀个 '\n',表⽰当前⾏遍历结束,开始下⼀⾏的打印;1. 在外部循环中,我们⽤ i 迭代⾏号,从 1 到 9 ,表⽰乘法表中的第 i ⾏;
2024-07-30 12:18:25
464
原创 每天一道C语言精选编程题之printf奇数
打印 1~100之间的奇数题目描述:使⽤C语⾔写⼀个程序打印 1~100之间的奇数,要求输出的数字中间加上空格。
2024-07-29 23:56:02
318
原创 考研数据结构(一)——数据结构的基本概念
逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的数据的逻辑结构,分为线性结构和非线性结构,线性表是典型的线性结构,集合、数和图是典型的非线性结构。数据是信息的载体,是描述客观事物属性的数字符及所有能输入到计算机中,并被计算机程序识别和处理的符号的集合。数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。数据对象是具有相同性质的数据元素的集合,是数据的一个子集。在此集合上的一组操作的总称。
2024-07-28 23:56:00
761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人