自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断两函数是否能旋转后相等

/写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。代码缺点:用例有点少,不确实能否有效判断全部用例。2.左旋转和右旋转是一样的结果,判断一种就好了。1.弄多个字符串函数出来,当作样例来比较。下面是代码,代码上讲步骤。

2024-06-17 21:09:15 132

原创 实现一个函数,可以左旋字符串中的k个字符

1.getchar的使用,没有getchar 回车键也会被当做输入的字符,那为什么以前有些题就不需要getchar呢,比如冒泡排序输入数组。因为此时的数组是字符数组,使用的是%c,回车键也是字符。1.创建两个数组,第一个数组是原来的存放字符的数组,第二个是用来存储旋转后的数组。2.第7行 的arr已经是首地址,不能使用&arr。&arr需要使用二级指针。如arr[] = "abcd",k=2;2.新数组分两步存储,先存储k后的字符,再存储k(包括k)的字符。

2024-06-17 17:19:21 194

原创 C语言操作符和整形提升

但是要用整形输出,char需要整形提升为int,提升后11111111 11111111 11111111 11001101。整形提升的目的是为了获取精度,一般常用于char提升为int。注意这里:里面补位是根据符号位,符号位是0就补0,是1就补1。常见的加减乘除赋值都是操作符,与计算有关的都是操作符。首先a = 00000101 b = 11001000。其中异或可以是一种状态,如3异或5值为3^5。&按位与,|按位或,^按位异或操作符。相加c = 11001101。

2024-06-13 19:07:49 328

原创 C语言扫雷(详细版)

如果只是9*9,那么判断该元素是不是炸弹的时候就要分情况了,比如中间的情况,左边的一种情况和角落的情况。本来我想用#来表示雷,但是'1'和‘0’,是最好的选择,因为它们表示整形的值差1,ASCLL值也是差1,如果用#还需要把返回值计算一下。下面这个代码是把x,y坐标周围的8个位置的字符和在一起减去8个‘0’,返回的计算‘1’的个数。打印两个数组,一个数组用来存储炸弹和非炸弹,还有一个数组来显示用户看到的显示界面。看到下面打印数组的循环,是从1到ROW,1-9,而第0行和第0列打印的是序号。

2024-06-02 21:19:54 472

原创 C语言写三子棋详细版

落子逻辑:先判断空白,按照玩家的逻辑,九宫格是从1.1到3.3,而我们数组的范围是0.0到2.2,所以写代码的时候需要-1. 还有就是如果超乎范围需要提醒玩家然后重新落子,如果输入的格子是下过的话也需要提醒重新落子。但是上面代码有个弊端,就是不能通过修改ROW和COL的值来更改胜负规则,比如是8*8的棋盘,那么胜利方式只会产生在3*3棋盘的地方。因为是玩家先手,有可能玩家落子后刚好下满,然后电脑是判断有无空格,一直没空格,电脑就会一直卡住。然后是判断胜负和是否下满,判断胜负可以在电脑落子过后,

2024-05-31 13:47:54 474

原创 sizeof和strlen的区别

值得注意的是: char arr2[] = { 'a','b','c','d','e' } char arr1[] = "abcde";两种不同的定义数组的方式,前者没有\0,而后者有。:sizeof是一个运算符,而strlen是一个库函数,strlen只认\0,没有\0就不会停止。是sizeof计算了 \0 的长度,strlen只计算 \0 之前的长度。sizeof可以计算整形数组的长度,而strlen只能计算字符数组的长度。strlen输出的是随机值,因为没有找到\0。

2024-05-20 15:18:41 355

原创 例题(接口型)

后面的那个(sizeof(int)*n),其实可以简写(int*)malloc(4*n)有一个数组 arr[] = {1,2,3,4,5,6,7},输入k数组向后移动k位。1. 让前numsSize - k个逆置: 4 3 2 1 5 6 7。注意 : 数组名num ,数组长度numsSize,移动次数k。如:k=3,arr[] = {5,6,7,1,2,3,4}2 .让后k个逆置:4 3 2 1 7 6 5。3. 让整体逆置:5 6 4 1 2 3 4。原:1 2 3 4 5 6 7。

2024-05-16 16:02:16 277

原创 函数查找顺序问题

原因:所有函数的查找顺序都是向上查找,图一在调用f1只有上面没有f2,就会查找失败从而报错。图1不能运行,而图二可以。添加了f2的函数声明。

2024-05-16 10:07:01 144

原创 关于数组地址和大小的计算

也是无符号整数类型,但它的大小通常是固定的,而不是根据特定的平台或编译器而变化。sizeof是size_t类型,就是无符号整形,但是和unsigned又有点区别,unsigned是不会根据环境的改变而改变的。//&a是整个数组的地址,然后加一,跳过整个数组,还是一个数组的地址。//&a表示整个数组的地址,然后解引用,就是整个数组,16个字节。//a是首元素地址,然后解引用,*a就是首元素,大小就是4字节。//除此之外,所有的数组名都是数组首元素的地址。//第二个元素的地址,首元素地址+1。

2024-05-13 15:51:07 426

原创 水花仙数问题

/用sum来代替n,防止循环影响后续n的值。输出1到100000之间的水花仙数,如153 1^3+5^3+3^3=153。思路:首先判断该数是几位数,然后求出每位上的数字的次方,再求和。//通过i来判断几位数。

2024-05-12 10:14:36 214 1

原创 多组输入实现大小写转换

分析程序:输入A后加上回车后A进入缓冲区程序开始运行,但是\(回车)也随之A进入缓冲区。根据ASCLL表\加32后为*,所以需要去掉\;此时出现了一个问题,输入A后会输出a和*。此时还需要一个结束条件,不然程序会一直循环。多组输入(可以多次输入)4.加入文件结束标志。

2024-05-06 10:35:54 185

原创 输出爱心代码

除了循环外就只用到了一个系统调用system("color 0c"),改变了输出图形的颜色。但是也改变了图形输出的时间,这条命令是没有改变时间的,但是删除这条命令后能明显感觉输出变快。

2024-04-26 09:43:38 181 1

原创 用指针交换变量和改变参数的值

c程序设计

2024-04-26 09:34:30 171 1

原创 三个数中求最大

最简单的方法:int main()int a = 0;int b = 0;int c = 0;if (a > b)b = a;if (c > b)b = c;return 0;

2024-04-24 10:18:08 195

原创 动态内存管理的几个函数使用

在calloc中的格式有点看不懂,我本以为 calloc(10,sizeof(int)) 其中10是需要的元素个数,sizeof(int)是数据类型,一个int类型有4个字节,积为40。我随意修改里面的值,发现calloc里面的数乘积为循环次数就能输出多少个0,但是所以colloc的写法在我看来有些多此一举,我还是比较喜欢用malloc。原理:把堆区里面重新开辟一个新的地址,然后拷贝原理地址里面内容,释放原理的地址。一共有4个函数:malloc,calloc,realloc,free。

2024-04-09 22:08:42 150

原创 例题:判断n个整数是否有序

我的n是5,循环里面i为0,i小于5,按理说应该只能输入5个整数,但是我要输入n+1个程序才有输出结果。我用vis和dev编译器都是这样。3.把一些特殊的整数算为无序如:1 1 1 1 1 1,1 0 1 0 1 0 1 0, 1 1 1 1 1 1 0等等。2.用循环输入n个数后,用前项比后项的方式来判断大小,此时需要注意循环次数,如果只循环了一次就比不了。我在输入第6个数时打乱了顺序,但是结果依然为有序,说明第6个数并没有参与排序。题目:输入一个正整数n,再输入n个整数。如图:这是我输入n为4的情况。

2024-04-01 15:08:48 388 1

原创 c语言例题(与生活相关)

鹏哥c语言

2024-03-31 17:12:35 239 1

原创 函数指针冒泡排序

就能将整个数组排序,我想应该是sqort的作用,因为return只能返回一个值,应该难以做到排序,但是我目前还不确定,但是以后的我肯定能回答这个问题。调用函数用void*是因为它是无具体类型指针,可以接受任意类型的地址,这就让使用范围大大提高,但是void*指针不能直接相加减,如果第一个接收到的是int*,第二个接收到的是char型,就无法加减,所以需要进行强制类型转换。其中qsort括号里面分别是数组名,数组长度,数组宽度(貌似是元素的占用的字节数),调用函数名。今天学习的指针冒泡排序学懵逼了。

2024-03-26 20:52:27 217 1

原创 整形数组和字符数组的部分区别

整形数组对于字符数组是没有\0作为结束标志,如图。

2024-03-24 11:16:45 176 1

原创 死循环例题1

由于数组越界访问是一种未定义行为,编译器无法检测到这个错误,因此程序会继续执行下去,不断地访问不存在的内存地址,导致死循环。的值增加到10时,会超出数组的索引范围,导致访问了不存在的内存地址,从而引发未定义的行为。这段代码会导致死循环的原因是在for循环中,循环条件。的长度是10,索引范围是从0到9,而循环条件中的。

2024-03-22 15:25:36 211

原创 大端小端判断

用char类型的指针访问1个字节判断第一个地址是否有值,那么不用整形提升用int类型指针访问第4个地址不一样可以判断出吗,为什么还要整形提升。}输出结果依然是小端,为什么不是大端呢(int类型判断第4个地址),是因为*p依然是判断的首地址吗?那么为什么还要整形提升呢。因为小段是01 00 00 00 大端是00 00 00 01。

2024-03-21 10:13:48 158 1

空空如也

空空如也

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

TA关注的人

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