- 博客(38)
- 收藏
- 关注
原创 原码,补码和反码
除此之外,补码和原码转换的运算过程相同,不需要其他硬件电路。有符号的整数(signed int)的三种表示方法里面有符号位和数值位两部分,2进制序列里面,最高位是符号位,剩下的是数值位置。(2)反码:顾名思义,把除了符号位数字其他全部反过来表示就是反码。其中,第一个bit表示这是正数,后面31为表示这是个10。由于它是正整数,所以它原码反码补码均是这个东西表示。整数的二进制表示的三种形式:原码,补码和反码。(1)原码:直接把数字换成二进制表示就是原码。符号位里面0是"正数",1是"负数"
2024-02-03 10:27:53
495
原创 牛客网BC124 序列删除指定数字
Q3,删除掉特定数字可能比较难,但是我们可以让该数字用0或者负数代替,因为题目要求的数字范围是1到50,不会让我们输出0,所以如果该数字是0或者负数,我们只需要不输出它即可。首先是Q1,因为题目有说序列长度最多为50,是一个特定的序列长度大小,因此首选考虑使用一维数组,且数组大小只需要定在50即可。其次是Q2,识别被删除的数字,只需要让每一个数组中的数字与识别的数字相比较,用一个for循环即可。最后通过条件判断是否需要输出,是就输出,不是就不输出就可以了。Q3:如何删除掉特定数字并把数字其他数字输出?
2024-01-24 09:25:28
383
原创 二进制计算
因此推演至二进制也是如此,比如1101,从左往右,第一位是1*2的3次方为8,第二位是1*2的平方为4,第三位是0*2的一次方为0,最后一位是1*2的0次方为1,加在一起8+4+0+1=13因此这个二进制数1101就是十进制数13。十进制中,每一位数有他的权重,比如123,实际上是由1*10²,2*10,3*10的零次方组成的,每一位都有他的比例。例如十六进制的6b,先翻译6,然后翻译b,凑在一起写就行了。而二进制的规则类似于十进制,满2进1,由数字0到1组成。十进制规则:满10进1,由数字0到9组成。
2024-01-24 09:03:27
431
原创 递归与迭代(例题:斐波那契数列,顺序输出,求阶乘)
函数不返回,函数对应的栈帧空间就⼀直占用,所以如果函数调用中存在递归调用的话,每一次递归函数调用都会开辟属于自己的栈帧空间,直到函数递归不再继续,开始回归,才逐层释放栈帧空间。试想一个主函数调用自己,那就会无限死循环主函数操作,这肯定是不满足要求的。所以如果采用函数递归的方式完成代码,递归层次太深,就会浪费太多的栈帧空间,也可能引起栈溢出(stack overflow)的问题。也就是说,在此过程中,只是F(3)就被算了3900万次,这个计算是冗余复杂且无用的,所以我们说递归的效率低下。
2024-01-22 10:45:14
356
原创 经典问题:判断水仙花数 并输出
水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。pow(a,b),其算出来的是a的b次方。比如pow(2,3),则算出来的就是2的3次方8。Q:求出0~100000之间的所有“水仙花数”并输出。(这里用的int,最好用double)pow函数主要是double类型的。注意其头文件是<math.h>第二步:先判断这个数是几位数。一个知识点:pow函数。
2024-01-21 22:32:19
529
原创 VS2022的调试技巧
一般有:标识名不存在(比如你没定义a你就用),拼写有问题,头文件没写,引用的库是不存在的。release版本是被优化的,代码大小和运行速度是最优的,发布给用户使用的。断点:在程序的任意位置上设置断点,可以让程序执行到该位置时暂停程序。在监视窗口可以看到值的变化,值的类型,以及内存的具体情况。②F5:启动调试,跳到下一个断点,一般和F9一起用。③F10:逐过程——不能看函数,直接调用完成整个函数。④F11:逐语句——可以具体看函数的运行。⑤Ctrl+F5:不调试,直接运行。条件断点:满足该条件才触发断点。
2024-01-21 17:36:16
876
原创 C语言里的作用域,生命周期和static与extern关键字
结论:static修饰的变量改变了变量的生命周期,生命周期改变的本质是改变了变量的存储类型,本来一个局部变量是储存在内存的栈区的,但是被static修饰后储存到了静态区,存储在静态区的变量与全局变量是一样的,所以其生命周期就和程序的生命周期一样了。i是在循环里面定义的,所以他的作用域就是for循环里面,因此,printf作为循环外的操作,这个i是没办法识别的。同样的,引用其他文件的自定义函数也是需要申明的,用extern,不过不写在某些编译器里面也不受影响。2.全局变量的生命周期是整个程序的生命周期。
2024-01-18 10:12:51
511
原创 运用函数解决简单数组题
2.形参写的也是数组的形式,并且形参可以省元素个数(一维数组),二维数组可以省略行,不可以省略列。思路:用函数传递数组,然后完成上面的三个任务,核心还是函数传数组参数的知识点。要注意reverse函数里面的sz-i-1。4.形参操作的数组是不会创建新的数组的。3.形参访问的数组地址和实参是一样的。5.形参改变的其实就是实参。1.数组传参传的是数组名。
2024-01-17 19:33:52
339
原创 C语言:函数的一些知识点
这个注意一下,printf的返回值是他的字符长度,所以最里面的printf输出43,这里是2个字符,所以中间的printf输出2,而2是1个字符,所以最外面输出一个1。有时候会把代码按照不同类型放在不同类型,一般来说函数的声明,类型的声明都会放在头文件,而函数的实现一般在源文件中实现。2.形参写的也是数组的形式,并且形参可以省元素个数(一维数组),二维数组可以省略行,不可以省略列。比如说你定义int类型的函数,但你给的数据是float,那么输出的就会是整形。实参:就是指刚刚主函数里面的那个变量参数。
2024-01-17 15:50:44
500
原创 个人错题反思
由逻辑可知最先输出hello,但是因为没有break,所以会继续进行输出third,因此输出hellothird。(×),没有强制规定。答:条件表达式执行次数比循环体次数多一次,因为其最后一次判断条件不成立时,循环体不执行。答:由于case没有break,所以b会被一直赋值,最终赋为0,因此func(1)=0。可以是int可以是long也可以是char但是不能是浮点数float。条件表达式与循环体的执行次数是什么关系?Switch语句中不可是什么类型?问:func(1)是多少?两个字符判断可以用==(×)
2023-12-18 13:35:39
30
原创 pintia的例题4.7菜单
②需要让一个字符型的ascll码值转换出来,可以用一个整形定义去接收这个字符型。①case后面接数字一定要给个空格。
2023-12-13 15:29:20
147
原创 二分查找/半序查找
二分法思路就是定义一个中间值middle,然后每次循环去比较middle值就可以了。找到了就输出,找不到就循环,完全找不到那就是没有。用二分查找也可以(数学里面的二分法)对一个正序数组找到里面的数据。
2023-12-09 11:57:03
29
原创 字符替换效果
但是这个效果很快,且很不好玩,所以运用Sleep函数来让这个效果更好,然后用清理屏幕函数把整个控制台清理掉。注意头文件,Sleep要包括windows.h文件,system要包含stdlib.h文件。注意,在写right的时候也可以用sizeof,但是数组后面是有个\0,所以要减1。(具体效果这里没办法视频呈现)
2023-12-09 11:16:45
34
原创 统计素数并求和(pintia第五章)
思路与修正过程:先定义两个输入的数M,N,然后定义次数和总值。对于M到N的判定就用一个for循环来完成。对于每个M是否为素数也用for循环完成,于是就两个嵌套完成(该思路具体看我之前写的找到100到200的素数的思路),然后如果是素数就让次数加一并增加总值,最后输出次数和总值。注意:1不是素数也不是合数,所以要考虑M取1的特殊情况,这种情况用if判定,如果M==1那么让他+1从2开始计算即可,代码如下。我展示的代码是小白代码(因为我是小白)
2023-12-08 22:44:09
136
原创 统计字符练习题
1.定义一些乱七八糟的变量,chr作为字符变量,i是作为循环变量,然后各种字符也是定义一个变量。4.注意if的后面要用单引号,不能用双引号!3.用getchar函数用来计算字符个数。2.用循环来算10个字符。
2023-12-05 17:50:02
48
1
原创 计算1-1/2+1/3……-1/100计算结果
思路:运用循环,搞出1到100,然后用if语句判定正负数,(分母)偶数为负,奇数为正,然后每次累加即可,注意计算结果是浮点数,所以我们要对计算式进行强制转换一下。
2023-12-02 11:39:54
156
1
原创 pintia7-6输出三角形面积和周长
(1)首先要有三个变量a,b,c,当边长来输入,同时考虑到要有一个量d表示周长且不被后面的代码影响,再定义一个量e进行计算转化求面积,理论上够了,我在写代码的时候最后还是引进了一个f来计算,可以不需要。(3)它提到了如果符合三角形,和不符合三角形两种情况,就用if-else,其中,符合三角形就是两边之和大于第三边的表达。(2)题目要求需要保留两位小数,所以引入变量要浮点数float,同时输出要用%.2f来保留两位小数。(4)开方需要sqrt函数,这个函数需要引进include<math.h>
2023-11-24 23:26:21
102
1
原创 C语言比较两个数的大小
思路很简单:首先输入两个变量进行比较,然后要用scanf函数获取数据,由于你需要多次比较数据,所以套一个while循环并保证他结果==真(非0)然后就用if函数嵌套比较大小并输出就完成了。
2023-11-15 12:33:04
104
1
原创 语句的类型
3.转向语句:break语句,goto语句,continue语句,return语句。例如printf函数,后面的printf("abab")的后面一定要有分号。这就是空语句,常用于这里需要一条语句,但该语句没有作用就写一个空语句。2.循环执行语句:do while 语句,while语句,for语句。④复合语句:一个代码块(放在一个大括号里面的),算是一个语句。1.条件判断语句(分支语句):if语句,switch语句。也算是一个表达式语句。①空语句:就只打一个分号。
2023-11-02 08:50:20
52
1
原创 转义字符的基本使用
想要让双引号正常输出,则需要在中间的"前面加上\,即"\"",这样就可以把中间的引号改为正常的引号的意思,而不会被识别成其他东西。(2)abc\bde则先会有abc然后回退光标到c前面然后继续输出de,此时d会覆盖c的位置,最终输出abde。\ddd是表示1-3个八进制的数字,比如\130,表示的是八进制的88,而88的ASCII码指对应的是X,所以输出的是X。同理\xdd则表示2个十六进制数字,如\x30,这表示十六进制数字,转换为十进制就是48,对应ASCII码值就是0。②单引号打出方法与双引号一致。
2023-11-02 08:34:16
343
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人