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