![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
文章平均质量分 65
阴阳两界
闲人千万,苟且求安
展开
-
三子棋(c语言的实现)
**三子棋**三子棋的流程:(1)首先我们要写一个函数init()用于初始化棋盘;(2)初始化完成后,我们要打印print()棋盘,以便用户观看;(3)玩家落子函数player();(4)判定游戏结束judege();(5)电脑落子computer();(6)判定游戏结束judege();以上就是三子...原创 2019-07-03 19:18:38 · 86 阅读 · 0 评论 -
C语言实现通讯录(动态分配内存)
#define _CRT_SECURE_NO_WARNINGS //VS警告#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h> //头文件#define Max_name 1024 //名字字节最大值#define Max_sex 4...原创 2019-09-17 21:00:23 · 201 阅读 · 0 评论 -
C语言文件操作
文件:磁盘上的文件是文件。在程序设计中,我们一般谈的文件有两种:程序文件、数据文件1.程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀 为.exe)。2.数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。我们主要讲的是数据文件,根据数据的组织形式,数据...原创 2019-08-28 16:17:33 · 120 阅读 · 0 评论 -
动态内存管理
我们过去掌握的内存开辟方式有:int val=20; //在栈空间上开辟4个字节char arr[10]={0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译 ...原创 2019-08-27 15:10:02 · 86 阅读 · 0 评论 -
函数指针——回调函数
指针函数函数的第二大应用——回调函数;回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。我们先写一个冒泡排序:void bubblesort(int *a, int s...原创 2019-08-18 11:09:56 · 182 阅读 · 0 评论 -
函数指针数组
本质它是一个数组;提一个概念:圈复杂度定义:圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。函数指针数组可以有效降低圈复杂度。函数指针数组的作用:转移表,回调函数。举个栗子:我们先写一个计算器的简单程序:#defin...原创 2019-08-16 15:59:23 · 5495 阅读 · 0 评论 -
实现字符串函数(下)
众所周知,下册比上册难我们今天要实现的函数是:Strcmp();字符串比较函数Memcpy();复制函数memmove();可重叠复制函数int Strcmp(const char* a, const char* b){ assert(a != NULL && b != NULL); if (*a == '\0'&& *b == '\0'){ retu...原创 2019-08-21 17:22:13 · 118 阅读 · 1 评论 -
实现字符串函数(上)
我们自己实现库函数:strcpy();strcat();strstr();strchr();void Strcpy(char* a, char* b){ assert(a != NULL && b != NULL); char *start = a; while ( *b != '\0'){ *start = *b; ++b; ++start; ...原创 2019-08-21 17:09:35 · 131 阅读 · 1 评论 -
把字符串*往前移,并返回字母的个数
编码完成下面的处理函数,函数将字符串中的字符’’移到字符串的前部分,前面的非’’字符后移,但是不能改变非’’字符的先后顺序,函数返回字符串中非’’字符的数量。例如:原始串为Hello**biter,处理后为******Hellobiter函数返回10.函数原型:void MoveStr(char *str);#define _CRT_SECURE_NO_WARNINGS#include&...原创 2019-08-20 17:28:01 · 301 阅读 · 0 评论 -
c语言总结
一、常量与变量(1)常量:a. 数值常量(整型常量、实型常量、字符常量);b. const 声明的类型;c. define 宏定义;d. enum 枚举类型;(2)变量:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。(...原创 2019-08-15 16:01:35 · 92 阅读 · 0 评论 -
一个数二进制下对其中一位进行操作
#include<stdio.h>#include<stdlib.h>int main(){ int a = 10; for (int i = a; i; i /= 2){ printf("%d", i % 2); } //a |= (1 << 1); //某一位置换为1 //a &= ~(1 << 1); //某...原创 2019-08-20 15:58:12 · 278 阅读 · 0 评论 -
C语言结构体的计算(详解)
结构体大小其实包含了一个知识点:内存对齐我们先记住以下四条内存对齐的规则:1.第一个成员在与结构体变量偏移量为0的地址处。2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所 有最大对齐数(含嵌套结构体的对齐数)的整...原创 2019-08-23 21:14:55 · 2224 阅读 · 1 评论 -
不使用库函数和库函数实现交换字符串
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//void reverse(char *...原创 2019-08-19 17:34:55 · 354 阅读 · 0 评论 -
关于 char 初始化多个字符问题
心血来潮试了试,给一个字符赋多个字母回如何?#include<stdio.h>#include<stdlib.h>int main(){ char a = 'a'; char b = 'abcd'; char c = 'abcde'; printf("%c\n", a); printf("%c\n", b); printf("%c\n", c); ...原创 2019-08-19 15:21:55 · 1549 阅读 · 0 评论 -
指针的理解
一级指针:理解:就是用来指向一个变量a的内存直接地址的变量,并能通过地址的解引用访问该变量a的值,在32位系统下,指针的大小一般都是4字节,在64位操作系统下为8字节,二级指针:理解:世界上本来没有二级指针,只不过一个指针指向了另外一个指针的地址,那么二级指针就出现了,同理多级指针也就是这么出现的。指针和数组:数组:是多个同类型数据的集合,在物理空间中存储是连续的,大小相同的空间。指针...原创 2019-08-19 15:00:59 · 285 阅读 · 0 评论 -
猴子排序
排序的方法太多了,常见的有什么 冒泡 选择 合并 快速之类的,我们今天来说说一个不常见的排序方法。之所以不常见,是因为纯粹看运气,运气好的,程序运行一次即可,时间复杂度为O(n),这应该是最快的了。但是,,,对于脸黑的,执行到世界末日都排序不出来。。。。#include<stdio.h>#include<stdlib.h>#include<time.h&...原创 2019-08-09 10:19:33 · 235 阅读 · 0 评论 -
C语言实现扫雷
我们今天要实现一个项目:扫雷。我么要分析一下这个项目都需要哪些步骤:(1)我们要有两个数组,一个用来显示给玩家,一个用来后台。就是说,我们有点开和未点开的样子,我们把点开的显示给用户,把未点开的留做后台数据。(2)要初始化,我们做个10*10的表格,先定义两个宏:#define max_row 10; //定义行#define max_col 10; //...原创 2019-08-03 17:05:59 · 81 阅读 · 0 评论 -
C语言操作符总结
一、算术操作符。首先了解一下算术标识符都有哪些:+、-、*、/、%。即最常用的加,减,乘,除,模的用法,它们之间的优先级类似于数学,乘除模的优先级高于加减,这里举个栗子:20 - 10 + 15 / 5 * 20 % 3先乘除所以, 15 / 5 = 3, 3 * 20 = 60, 60 % 3 = 0,然后 20 - 10 = 10, 10+0 = 10;二、移位操作符。移位操作符...原创 2019-08-03 16:48:12 · 158 阅读 · 0 评论 -
汉诺塔详解(包看包会)
CSDN的大佬已经解释了很多了,由我这个菜鸟反复理解后得到的一些心得的分享先看题:汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。如图,我们移动两...原创 2019-09-22 23:17:09 · 3596 阅读 · 5 评论