02 2019 档案

c语言指针总结
摘要:1.一级指针 :是一个变量,存放内存单元的地址。(存放在指针中的值都被当作地址来处理) int num=6; int* p = # printf("%p",p);//此时变量p里存放的是num的地址 2.指针的运算: 指针+-整数: int n = 10; char *pc = (char* 阅读全文

posted @ 2019-02-24 12:42 The_Ocean 阅读(571) 评论(0) 推荐(0)

判断一个字符串是否为另外一个字符串旋转之后的字符串。
摘要:例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC 阅读全文

posted @ 2019-02-16 14:12 The_Ocean 阅读(452) 评论(0) 推荐(0)

实现一个函数,可以左旋字符串中的k个字符
摘要:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB ABCD BACD BCAD BCDA CBDA CDBA CDAB 发现规律: 如果左旋一个字符则可以将第一个字符依次与后面的字符交换位置 如果左旋k个字符则可以将上面的操作进行k次 阅读全文

posted @ 2019-02-15 11:06 The_Ocean 阅读(319) 评论(0) 推荐(0)

写一函数,调整数组使奇数全部都位于偶数前面
摘要:调整数组使奇数全部都位于偶数前面。 输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。 阅读全文

posted @ 2019-02-14 22:58 The_Ocean 阅读(490) 评论(0) 推荐(0)

在杨氏矩阵中查找一个数字是否存在
摘要:杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N); 数组: 1 2 3 1 3 4 1 2 3 2 3 4 2 4 5 4 5 6 3 4 5 4 5 6 7 8 9 阅读全文

posted @ 2019-02-14 22:54 The_Ocean 阅读(250) 评论(0) 推荐(0)

改正字符数组中的内容
摘要:有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)。 student a am i i ma a tneduts i am a student 阅读全文

posted @ 2019-02-13 23:44 The_Ocean 阅读(182) 评论(0) 推荐(0)

找出一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的(使用位运算)
摘要:要求使用位运算 异或运算:相同为0,不同为1, a[]={1,2,5,6,8,8,1,2,6} 1^x=-x , 0^x=x b[]={1,1,2,2,5,6,6,8,8} 举例a[] 1: 0 0 0 1 2: 0 0 1 0 0011--> 1与2异或运算的结果 5: 0 1 0 1 0110- 阅读全文

posted @ 2019-02-11 22:31 The_Ocean 阅读(365) 评论(0) 推荐(0)

求两个数的平均值,不能只用(a+b)/2的方法
摘要:1 #include 2 3 int avg1(int a, int b) 4 { 5 //利用移位操作符 6 //右移移位相当于——>除以2 :(a+b)>>1 7 //考虑到溢出情况:1.可以增加字节的大小将4个字节变为8个字节 8 return a + ((b - a) >> 1); 9 } 10 11 int avg2(int ... 阅读全文

posted @ 2019-02-11 21:53 The_Ocean 阅读(610) 评论(0) 推荐(0)

写一个函数实现整数的二进制位模式从左到右翻转
摘要:如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 思路:第1位逆转到了第32位->后整数的值为2^3 阅读全文

posted @ 2019-02-11 21:04 The_Ocean 阅读(401) 评论(0) 推荐(0)

两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
摘要:思路:利用&用算加右移的方法来提取二进制中的每一位数,然后进行比较,查看是否相同。 阅读全文

posted @ 2019-02-11 10:04 The_Ocean 阅读(402) 评论(0) 推荐(0)

获取一个数二进制序列中所有的偶数位和奇数位
摘要:思路:要判断一个整数的二进制偶数位是0还是1,则可以用这个整数和1或2进行&的用算,之后进行右移在进行&的用算,直到右移为0结束。 可以利用这种方法提取二进制数。 阅读全文

posted @ 2019-02-11 10:00 The_Ocean 阅读(784) 评论(0) 推荐(0)

扫雷小游戏
摘要:1 #define _CRT_SECURE_NO_WARNINGS 2 #include 3 #include 4 #include 5 6 #define ROW 9 7 #define COL 9 8 #define MINE_COUNT 10 9 10 int Menu() 11 { 12 printf("===============... 阅读全文

posted @ 2019-02-09 18:11 The_Ocean 阅读(337) 评论(0) 推荐(0)

写一个函数返回参数二进制中1的个数
摘要:8 二进制为:0000 1000=> 8/2=4 4/2=2 2/2=1(一的个数为1) 11 二进制为:0000 1011=> 11/2=5...1 5/2=2...1 2/2=1(一的个数为3) 31 二进制为:0001 1111=> 31/2=15...1 15/2=7...1 7/2=3.. 阅读全文

posted @ 2019-02-07 15:05 The_Ocean 阅读(428) 评论(0) 推荐(0)

三子棋小游戏
摘要:1 #define _CRT_SECURE_NO_WARNINGS 2 #include 3 #include 4 #include 5 6 #define ROW 3 7 #define COL 3 8 9 char g_broad[ROW][COL]; 10 11 void Init(char broad[ROW][COL]) 12 { 13... 阅读全文

posted @ 2019-02-06 16:52 The_Ocean 阅读(400) 评论(0) 推荐(0)

递归方式实现打印一个整数的每一位
摘要:思路:与提取整数的每一位数字一样,如果输入的是1位数字,则可以直接输出,如果是2位数字则可以先将其除10化为一位数字,在输出。3位数也是如此,先化为2位数字,在进行2位数的步骤。 注意:正在这里需要注意,因为需要从高位开始打印数字,所以需要将打印放在函数调用的后面。 阅读全文

posted @ 2019-02-02 11:57 The_Ocean 阅读(1723) 评论(0) 推荐(0)

递归和非递归分别实现求n的阶乘
摘要:思路:举例求6的阶乘,6*5*4*3*2*1。可以将5开始看成另一个整型变量n,用一个循环每次将n的值减少1,。而递归也是如此,每次调用函数的时候将变量减一就可以。 方法一:非递归 方法二:递归法 阅读全文

posted @ 2019-02-01 09:35 The_Ocean 阅读(2773) 评论(0) 推荐(0)

导航