C语言学习
Ambition小啊潇
这个作者很懒,什么都没留下…
展开
-
三子棋的C语言实现
三子棋的C语言实现一、构造一个比较好的架构 1、主函数(main.c) 功能:进行游戏或退出游戏 2、游戏总函数(game.c) 功能:通过调用一系列函数来实现整个三子棋游戏 3、游戏头文件(game.h) 功能:声明游戏总函数中的各个函数,并定义一些宏二、实现不同功能的函数三、所有代码main.c#define _CRT_SECURE_NO_WARN...原创 2019-04-10 18:59:27 · 811 阅读 · 0 评论 -
异或^的特性——在一组数据中找出只出现了一次的数字,而其他所有数字都是成对出现的。
在一组数据中找出只出现了一次的数字,而其他所有数字都是成对出现的。异或的特性: 1、一个数对另一个数进行两次按位异或的结果还是那个数 eg:1 ^ 2 ^ 2 = 1; 2、异或两次等于原值,并且异或是没有顺序的 eg:7 ^ 3 ^ 5 ^ 7 ^ 5= 3;因此,该题的思路:遍历整个数组,让每个数都和ret(ret初始值设为0,0异或任何数还是0)进行异或操作,最终...原创 2019-04-27 22:54:06 · 694 阅读 · 0 评论 -
函数实现返回参数二进制中1的个数——多种写法
函数实现返回参数二进制中1的个数——多种写法一、数位遍历(常规写法)for (i = value; i; i /= 2){ //相当于使用了if语句 count += i % 2; /* if (i % 2){ count++; } */}二、通过移位操作符 将1从右至左一次移动,每次都与value进行&操作,利用&操作的性质,两数全为1时结...原创 2019-04-27 22:41:37 · 245 阅读 · 0 评论 -
C语言n进制下的回文数
C语言n进制下的回文数 回文数的思想:根据数位遍历,将最后一位的数字取出来变为结果数字的第一位数字,在将原数字中的最后一位去掉,反复执行知道原数字长度为0即可。 先逆序,在判断和原来是否相同。1、十进制下的回文数for (i = input; i; i /= 10){ tmp = i % 10; sum = sum * 10 + tmp; } if(sum==input)...原创 2019-04-27 22:04:38 · 1177 阅读 · 0 评论 -
整数在内存中二进制中1的个数(常规循环+移位技巧)
整数在内存中二进制中1的个数(常规循环+移位技巧)一、循环int OneCount(int num){ int count = 0; while (num){ if (num % 2 == 1){ count++; } num /= 2; } return count;} 利用简单的短除法,当num%=1即二进制中产生了一位是1,所以count++,循环的...原创 2019-04-14 12:06:53 · 237 阅读 · 0 评论 -
C语言字符串逆序(一个参数版本+两个参数版本)
C语言字符串逆序(一个参数版本+两个参数版本)一、两个指针参数版本(简单)//添加两个参数void reverse_string(char* start,char* end){ char tmp = *start; *start = *end; *end = tmp; if (start+1 < end-1){ reverse_string(start ...原创 2019-04-14 11:49:27 · 622 阅读 · 0 评论 -
C语言操作符总结
C语言操作符总结目录* 1.操作符的分类* 2.表达式求值一.操作符的分类1、算数操作符 除以一个变量,该变量的值为0,会导致运行时出错。 除以一个常量0,编译器就会编译错误。2、移位操作符 计算机上的信息都是按照二进制存储的,左移<<2相当于*2(左侧丢弃,右侧补0),右移>>2分为逻辑右移:左侧补0和算术右移:左侧补符号位(相当于/2),右移大多...原创 2019-04-14 11:46:08 · 105 阅读 · 0 评论 -
给定五组数字,判定生日日期在哪一天(算命)
给定五组数字,判定生日日期在哪一天(算命)五组数据第一组 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31第二组 2 3 6 7 10 11 14 15...原创 2019-04-16 23:52:59 · 3962 阅读 · 0 评论 -
简单扫雷游戏的C语言实现
简单扫雷游戏的C语言实现一、对扫雷游戏进行全面的多方位的分析1、使用两个二维数组表示地图 a)show_map表示每个位置是否被翻开 *表示未翻开,‘1’-'8’表示周围8个格子中有几个地雷 b)mine_map表示每个位置是否是地雷 ‘0’表示不是地雷,‘1’表示是地雷2、两个二维数组的初始化 a)show_map初始化全为* b)mi...原创 2019-04-12 00:17:22 · 546 阅读 · 0 评论 -
0-9十位数字查重+a-z二十六个字母查重(位运算)
数字查重+字母查重(位运算)一、数字查重数字查重的思想:把十进制的1-9数字转化为二进制的位数。1-9对应二进制的第1-9位(从低到高)原创 2019-04-18 23:34:17 · 1038 阅读 · 0 评论