![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习记录
尚久龙
这个作者很懒,什么都没留下…
展开
-
C头文件只引用一次的方法
我们自己在写头文件的时候,如果不加入一些独特的方法,有可能造成重复引用的可能,造成代码的冗余,占用空间大,降低效率。这个方法比较简单,只需要在我们自己写的头文件的第一行写上#pragma once 就可以了。2、#ifndef 头文件名称 #define 头文件名称 #endif。此处的头文件名称改造成:前后加两个下划线,点换下划线。原创 2023-09-05 04:18:10 · 547 阅读 · 0 评论 -
C语言记录程序日志
我们写程序,不可能一次就写的一个bug都没有,必须要不停地修改,有可能自己调试已经没有问题了,发给客户后还是问题很多,这个时候跑到客户处解决问题就不现实了,自己不在还要找到问题的所在,最好的办法就是记录一下程序运行的日志了,只需要跟客户要下日志文件,自己就能定位错误的大概地方了,好提供更改的数据支持。原创 2023-09-03 03:56:18 · 1184 阅读 · 0 评论 -
C语言拷贝一个文件。
今天学习了如何用c语言拷贝一个文件,一个字符一个字符的拷贝一个文件,特此记录一下。这样就把文件1中的所有内容都拷贝到了文件2中。原创 2023-08-31 04:23:41 · 622 阅读 · 0 评论 -
为c语言安装easyx图形库
之后的x方向是从左向右的,y的方向是从上到下的,不符合我们上学是的看图策略,y方向要从上到下,所以要设置y轴方向:setaspectratio(1, -1);// 设置xy坐标轴(x:1,y:-1)代表y翻转, x不动。物理坐标在窗口的左上角是0,0的位置,但是我们使用的是逻辑坐标,所以要设置逻辑坐标原点的位置:setorigin(width/2, height/2);// 设置逻辑原点为窗口中心。接下来就是画圆了:circle(0, 0, 100);按照图上的步骤,安装easyx图形库。原创 2023-08-11 11:27:51 · 862 阅读 · 0 评论 -
C语言指针应该这么学?
/sizeof(a) 计算的是整个数组的大小,4个元素,每个元素都是4个字节,所以最后的大小是: 16 字节。sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。全部打印出来的是什么结果,我们来一个一个的解决这些问题?除此之外所有的数组名都表示首元素的地址。原创 2023-07-30 14:31:13 · 103 阅读 · 0 评论 -
C语言实现冒泡排序排列数组中的元素!
按照。原创 2023-07-26 15:01:56 · 603 阅读 · 0 评论 -
(*(void(*)())0)() C代码解读
/ 把void(*)(int)函数指针类型重新定义为 pfun_t。// signel 是一个函数名,函数的参数是(整型和void(*)(int)) void(*)(int):是一个函数类型。//3、 *(void(*)())0 : 代表把(void(*)())0函数指针解引用。//4、(*(void(*)())0)() :代表调用解引用的函数指针(也就是调用函数)// void(*signel)(int)是一个函数指针。原创 2023-07-24 06:42:47 · 523 阅读 · 0 评论 -
日本某地发生一件凶杀案,经常通过排查确定杀人凶手必为4个嫌疑犯的1个
日本某地发生一件凶杀案,经常通过排查确定杀人凶手必为4个嫌疑犯的1个。请根据这些信息,写一个程序来确定到底谁是凶手?已知3个人说了真话,1个人说的是假话。原创 2023-07-22 07:34:20 · 181 阅读 · 0 评论 -
C语言写杨辉三角
【代码】C语言写杨辉三角。原创 2023-07-22 06:39:42 · 101 阅读 · 0 评论 -
C语言调整:奇数位于数组的前半部分, 偶数位于数组的后半部分
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,这样就实现了调整数组中奇数占前半部分,偶数占后半部分的功能。所有的偶数位于数组的后半部分。输入一个整数数组,实现一个函数,原创 2023-07-21 06:32:04 · 295 阅读 · 0 评论 -
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水?
用C语言编程解决实际问题:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水?原创 2023-07-21 04:21:37 · 76 阅读 · 0 评论 -
求Sn=a + aa + aaa + aaaa + aaaaa的前5项之和,其中a是一个数字
解析: a + aa + aaa + aaaa + aaaaa = a + a*10+a + (a*10+a)*10 + a + ((a*10+a)*10 + a) + a + ((a*10+a)*10 + a) + a。这道题最难的点应该是怎么实现2 + 22 + 222 + 2222 + 22222,这个点搞懂了,就没有什么难点了!求Sn=a + aa + aaa + aaaa + aaaaa的前5项之和,其中a是一个数字。例如:2 + 22 + 222 + 2222 + 22222。原创 2023-07-19 16:20:36 · 648 阅读 · 0 评论 -
求出0~100000之间的所有“水仙花数”并输出
如:153=1^3 + 5^3 + 3^3 , 则153是一个“水仙花数”“水仙花数”是指一个N位数,其各位数字的n次方之和正好等于该数本身。求出0~100000之间的所有“水仙花数”并输出。的一种,严格来说3位数的3次。附:其他位数的自幂数名字。三位自幂数:水仙花数。原创 2023-07-19 12:00:12 · 652 阅读 · 0 评论 -
c语言播放MP3音乐
之后应用确定,再运行程序,发现就能正常播放音乐了。原创 2023-07-15 20:38:30 · 2054 阅读 · 5 评论 -
几道关于原码,反码,补码和整型提升的两道题?
上面的代码打印的结果是多少?原创 2023-07-10 13:15:59 · 75 阅读 · 0 评论 -
-1在内存中的存储及打印问题。
char a接收-1的补码,由于char类型存储空间是1个字节8位,所以-1的补码要存储到char a中就要发生截断,把-1的补码从左到右数8位:1111 1111放到char a的空间内,后面要以十进制的方式打印a。-1的补码是:1111 1111 1111 1111 1111 1111 1111 1111 反码+1。-1的补码是:1111 1111 1111 1111 1111 1111 1111 1111 反码+1。-1在内存中存储的是补码。原创 2023-07-10 08:57:09 · 1309 阅读 · 0 评论 -
C语言解决兔子出生的问题(小有难度)!
现在感觉所有的问题都要画图,通过画图先把自己的思路理清了,剩下的写代码就是非常轻松的一件事了,好了,今天的学习到此结束!其实这道题昨天就考虑了,没有把图画出来,进过晚上的思考,今天终于完成了!还是有点小激动的,因为解决的问题越来越复杂了!小兔子长到第3个月后每个月又生一对兔子,假设所有的。兔子都不死,问30个月内每个月的兔子总数为多少?问题:有一对兔子,从出生后的第3个月起每个月都生一对兔子。原创 2023-06-22 12:06:14 · 564 阅读 · 1 评论 -
用c语言查找交通肇事者。
1000*a1 + 100*a2 + 10*a3 + a4 = x² = 一个两位数数相乘 这个两位数绝对不。按照题目的要求构造出一个前两位数相同、后两位数相同且相互间又不同的4位整数,能超过100,因为100的平方就是1万了,超过4位数了。现场有3人目击事件,但都没有记住车号,他说:“四位的车号刚好是一个整数的平方”。然后判断该整数是否是另一个整数的平方。甲说:“牌照的前两位数字是相同的”。乙说:“牌照的后两位数字是相同的”。请根据以上的线索求出车号。只记下车号的一些特征。原创 2023-06-18 08:23:59 · 761 阅读 · 0 评论 -
C语言解决“三天打鱼两天晒网”的问题?
该算法为数值计算算法,要利用循环求出指定日期距1990年1月1日。的天数,并考虑到循环过程中的闰年情况。判断闰年的方法是:如果(能被4整除并且不能被100整除)或者。(2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除。某人从1990年1月1日起开始“三天打。若余数为1,2,3,则他是在“打鱼”,否则他是在“晒网”。鱼两天晒网”,问这个人在以后的某一天是“打鱼”还是“晒网”?(1)计算从1990年1月1日开始至指定日期共有多少天?(3)根据余数判断他是“打鱼”还是“晒网”。原创 2023-06-17 11:13:02 · 1579 阅读 · 2 评论 -
C语言解题:小明有五本新书,要借给A、B、C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
将5本书从1~5进行编号,A、B、C三个人每次都可以从5本书中任选1本,即每人都有5种选择,由于1本书。小明有五本新书,要借给A、B、C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?不可能同时借给一个以上的人,因此只要三个人所选书的编号不同,即为一次有效的借阅方法。本题属于数学中常见的排列组合问题,即求5个数中取3个不同数的排列组合的总数。原创 2023-06-16 11:58:52 · 1355 阅读 · 0 评论 -
原来C语言计算的数只要低过4个字节就要整型提升!
1000 0000 0000 0000 0000 0000 0111 1110 现在是c的原码,此时首位为1,证明是负数,后面的111 1110 的 十进制值是126, 加上负数 正好c的值就变成了 -126.后面的+a和-a都是有运算符的,需要a参加运算,所以a就要整型提升了,结果打印的值就是4了。c=a+b,证明a和b都要参加运算的,由于a和b是char型只有一个字节,不足4个字节,所以要提升。最后要打印整型的c,又需要cpu来计算,由于c是一个字节的char型,所以还要整型提升,原创 2023-06-16 10:43:38 · 114 阅读 · 0 评论 -
C语言解决百钱买百鸡的问题。
(3)不妨把公鸡、母鸡、小鸡的数量分别设为cock,hen,chicken,则cock+hen+chicken=100,因此百钱买百鸡的问题。(1)用百钱如果只买公鸡,最多可以买20只,但题目要求买100只,由此可知,所买公鸡的数量应该在0~20之间。一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?问题很简单,解答也不难,难在每天都坚持解决一点问题。(2)同理,所买母鸡的数量应该在0~33之间。就转化成解不定方程组的问题了。原创 2023-06-15 10:33:54 · 5894 阅读 · 0 评论 -
C语言交换两个变量的值,不能使用第三个变量。
这就是32位整型能存储的最大的数了,都是1.一旦和超过了这个数,结果就变的不准确了,当然如果你用不到这么大的数,那就无所谓了。这种方法能虽然能解决这个问题,但是有一个很大的问题,那就是如果这两个数都特别大,相加之后会越界的数,这时就会出问题了,比如32位系统存储一个整数是4个字节。我们正常的做法是:比如有变量a=2,变量b=3,我们创建变量c,把a的值放到c里面,再把b的值放到a里面,最后把c的值放到b里面,就完成了。好了,今天到此为止,学习了这么多,也该休息一下了。问题是:交换两个变量的值。原创 2023-06-13 10:08:17 · 435 阅读 · 0 评论 -
C语言写一个扫雷游戏
输入要扫雷的坐标后,如果是雷就game over了,被炸死了,如果不是雷,就要检测这个坐标周围一圈的坐标内有几个雷,然后显示在当前的坐标内,提示一下玩家周围有几个雷。今天学习了鹏哥讲的扫雷,特此记录一下自己的实现过程。接下来是game.h头文件,里面写的是关于游戏实现的可暴露在外的部分函数声明。没有图形化的界面啊?当前是test.c文件也是程序入口所在的文件。废话不多说,直接看看文件关系及代码吧!先看看执行的效果吧!原创 2023-06-11 12:21:31 · 73 阅读 · 0 评论 -
用C语言写一个简单的三子棋游戏
今天学习了一个鹏哥讲的三子棋游戏,学完之后自己总结了一下,特此分享出来,提醒自己不要忘记。虽然很简单,但是还是要理清其中的逻辑。经过这个游戏的学习,我感觉出画图理清逻辑的重要性。好多程序写不出来,感觉就是逻辑关系没有理清楚,所以以后的学习要多画图,要把关系理清晰,才是重中之重。好了,我把我初次画的图分享出来吧!好了,这就是我这一上午的时间写的这么多的代码了。特此记录一下,防止自己忘记过程。按照上面的代码写三个文件,就能写出三字棋游戏了,我们来看看运行后的效果吧!原创 2023-06-09 13:04:04 · 122 阅读 · 0 评论 -
学习c语言中的几道习题(小有难度)!
我现在只是刚刚开始学习c语言,如果有什么说的不对的地方,网路过的大佬,及时予以指正。以上就是今天早晨起来做的 7道题,主要是为了自己不忘记,或是忘记的时候看自己的代码熟悉的速度会更快,特此记录。编写一个函数reverse_string(char * string)(递归实现)如:输入9,输出9*9口诀表,输入12,输出12*12乘法口诀表。实现一个函数,打印乘法口诀表,口诀表的函数和列数自己制定。将参数字符串中的字符反向排列,不是逆序打印。递归和非递归分别实现求n的阶乘。实现一个函数来交换两个整数的内容。原创 2023-05-28 06:59:18 · 1176 阅读 · 0 评论 -
12道c语言的课后习题!
3、求第n个斐波那契数。意思就是前两个数的和等于第三个数:1 1 2 3 5 8 13 21 34 55 .....7、用另外一种方法求计算 1/1-1/2+1/3-1/4.....+1/100的值?1、计算n的阶乘(1*2*3*4*5 n是个数,比如说乘到100?6、计算 1/1-1/2+1/3-1/4.....+1/100的值?5、编写1到100的所有整数中出现了多少个数字9?4、用一个更高效率的方法求第n个斐波那契数?2、用递归的方式实现n的阶乘?8、求10个整数中的最大值?原创 2023-05-26 09:49:04 · 1009 阅读 · 0 评论 -
用递归的方式求字符串长度。
需要注意的就是主函数调用子函数时传入的数组是数组首元素的地址值,每次都给地址加一,就是下一个地址了,判断这个地址中的值是不是我们想要的。这个程序还是很绕的,不过理解了就好了,也就那么回事了。特此记录一下,防止时间一久自己就忘了。咱们先来看看用常用的方法怎么求字符串的长度吧!其实很简单就是不停的看下一个元素是不是\0,因为一个字符串的结尾都有一个\0,如果不是就加一就好了。写成代码就是下面:这个代码用到了中间变量。如果不用临时变量要怎么实现这个统计功能呢?那就要用递归来实现这个功能了。原创 2023-05-25 16:01:19 · 408 阅读 · 0 评论 -
C语言隐藏自己源码成lib静态库的和使用lib静态库的方法
好了,到这里我写的这个简单的程序就写完了,只实现了一个简单的小功能,现在有人想买我的代码,我想卖但是我又不想别人知道我的源码,具体的实现过程是什么?所以就出现了下面的内容,把自己的代码,编译成静态库的文件,这样别人就看不到我的源码了,功能还不影响使用。经过上面的步骤咱们就正常的调用了别人卖给咱们的功能代码了,同时咱们还看不到别人的源码,功能还不限制使用。然后去这个目录下拷贝生成的文件,将sub.h头文件和这个test.lib文件卖给对方就行了。这个sub.c内的文件内容很简单,就写一个减法函数。原创 2023-05-23 13:13:53 · 779 阅读 · 0 评论 -
调用子函数传递数组的问题
这个程序我想要数组元素的个数,结果得到的却是0,所以说,调用子函数时,如果想要传递数组的元素个数时,要提前在主函数中算好了,不要想着把数组传过去,结果会和预想的结果不一样的。原因是传递的不是数组本身,而是一个数组元素的一个地址而已。今天学习C语言时,主函数调用子函数,需要传递一个数组到子函数中,发现传递不过去,单布后返现其实传递过去的只是数组第一个元素的地址。这个程序主要的功能是利用二分法在一个有序数组中查找一个数。原创 2023-05-21 08:41:07 · 1050 阅读 · 0 评论 -
C语言中子函数改变主函数中变量值的方法
上面的程序运行后,发现交换前和交换后的结果是一样的,单步走发现值在子函数中也被交换了,主函数中却没有交换,究其原因我认为是,子函数中的变量都是临时变量,函数调用完就会销毁了,并没有影响到主函数中的变量。今天学习C语言时,发现在子函数中想要改变主函数中的变量的值的时候,直接拿来用是不能改变主函数中变量的值的。这样运行程序就能得到交换变量值的效果了,也就是子函数中改变了主函数中变量的值了。最有效直接的方法就是,传入变量的地址,改变该地址中的值。原创 2023-05-20 07:33:55 · 1858 阅读 · 0 评论 -
c语言判断100到200之间的素数?
标准:素数就是质数 只能被1和它本身整除。判断100到200之间的素数。原创 2023-05-18 09:28:34 · 192 阅读 · 0 评论 -
c语言求两个数的最大公约数
假设大数是m,小数是n, 直接用 m%n结果为t,取余的结果不是0,就开始循环,把n的值给m,求解最大公约数的方法有:辗转相除法、更相减损法、辗转相减法等多种方法可供选择。把t的值给n,重复上面的循环,直到取余的结果为0, 这时的n就是最大公约数。原创 2023-05-17 10:21:42 · 451 阅读 · 0 评论 -
c语言随机数的生成
/ 设置随机数的起始值为强制转换成整型的时间戳 设置起始值必须在调用随机数之前。//// b.你猜错了,会告诉你猜大了,还是猜小了,直到猜对。///// 1、自动产生一个1-100之间的随机数。//// a.猜对了,就恭喜你,游戏结束。time()函数的使用需要引用time.h头文件。///////////// 写一个猜数字游戏。//// 3、游戏一直玩,除非退出游戏。///// 2、 猜数字。原创 2023-05-16 11:12:22 · 278 阅读 · 0 评论 -
C语言中的字符串比较函数strcmp()
该函数的比较规则是按照字典序进行比较,即从左到右逐个比较字符串中的字符,直到出现不同的字符或者其中一个字符串结束为止。如果两个字符串的前缀部分相同,但其中一个字符串已经结束,则长度较短的字符串被认为是小于长度较长的字符串。其中,`string1`和`string2`分别是要比较的两个字符串,函数返回值为整型,表示两个字符串的大小关系。如果`string1`小于`string2`,则返回一个负整数;如果`string1`大于`string2`,则返回一个正整数。原创 2023-05-16 09:26:39 · 3597 阅读 · 0 评论