学习历程
July yi
这个作者很懒,什么都没留下…
展开
-
小乐乐和子串问题
在庆祝祖国母亲70华诞之际,老师给小乐乐出了一个问题。大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子串“CHN”的个数。子串的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子串。如“ABC”的子串有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”。输入描述:输入只包含大写字母的字符串s。(1 ≤ length ≤ 8000)输出描述:输出一个整数,为字符串s中字串“CHN”的数量。示例1原创 2020-11-22 17:22:08 · 214 阅读 · 2 评论 -
(C语言)指针
大家对于指针并不陌生,具有一定编程基础的都知道指针的概念:指针是个变量,用来存放地址,地址唯一标识一块内存空间指针大小是固定的4/8个字节(32位平台/64位平台)指针是有类型的,指针的类型决定了指针+ - 整数的步长,指针解引用时候的权限指针的运算接下来我们讨论一下指针类型:字符指针,数组指针以及数组传参,函数指针字符指针字符指针 char *常见的两种使用方式:存放一个字符的地址int main(){ char c = 'a'; char *cp = &c;原创 2020-11-15 15:58:31 · 103 阅读 · 0 评论 -
文件操作(C语言)
C语言中的文件操作在我们介绍文件操作之前需要理解的知识点包括:文件类型、数据流、缓冲区、文件存取方式什么是文件磁盘上的文件是文件,但在程序设计中,我们谈到的文件分为程序文件和数据文件程序文件:包括源程序文件(后缀为.c),目标文件(Windows环境后缀为.obj),可执行文件(Windows环境后缀为.exe)数据文件:文件内容不一定是程序,而是程序运行时读写的数据。文件类型数据在内存中以二进制形式进行存储,如果不加转换输出到外存,就是二进制文件。如果在外存中需要以原创 2020-11-14 16:35:40 · 652 阅读 · 0 评论 -
2020-11-03
自定义类型:结构体,枚举,联合结构体结构体声明struct tag{ member_list;}variable_list;例如:定义一个学生结构体struct Stu{ char name[20]; //姓名 int age; //年龄 char sex[5]; //性别 char id[20]; //学号};结构体内存对齐计算结构体大小,对齐规则:第一个成员在与结构体变量偏移量为0的地址处其他变量成员要对齐到对齐数的整数原创 2020-11-03 16:13:17 · 137 阅读 · 0 评论 -
2020/10/26(字符函数和字符串函数的讲解以及实现)
字符函数和字符串函数C语言对字符和字符串的处理还是很频繁的。字符串可以存放在字符串常量中,也可以存放在字符数组中。我们应该掌握有关字符函数和字符串函数的使用。下边介绍一些常用的字符串的库函数及使用求字符串长度 strlen长度不受限制的字符串函数 strcpy strcat strcmp字符串查找 strstr内存操作函数 memcpy memmovestrlensize_t strlen(const char* str);该函数原创 2020-10-26 21:29:04 · 102 阅读 · 0 评论 -
2020/10/4剖析数据在内存中的存储
数据类型分为:内置类型 自定义类型一 常见的内置类型:char //字符数据类型short //短整形int //整形long //长整型long long //长长整形float //单精度整形double //双精度整形二 自定义类型:数组类型结构体类型枚举类型联合原创 2020-10-04 20:30:17 · 89 阅读 · 0 评论 -
2020-9-17(C语言实现菱形打印)
实现菱形打印,我们需要把没打印 * 的位置用空格代替代码如下:#include<stdio.h>int main(){ char str[100] = " "; int mid = 6; int i = 0; int j = 0; int row = 0; for (row = 0; row < 7; row++) { for (i = mid, j = mid; (i >= mid - row) && (j <= mid + row)原创 2020-09-17 20:25:12 · 74 阅读 · 0 评论 -
#2020-9-12(C语言实现统计二进制中1的个数)
我们知道,整型数字在内存中都是以二进制形式进行存储。要统计二进制中1的个数,我们可以用以下两个方法实现:都是通过位操作符来实现的。方法一:#include<stdio.h>int main(){ int num = 0; printf("请输入:"); scanf("%d", &num); int count = 0; while (num) { count++; num = num & (num - 1); } printf("二进制中1的个原创 2020-09-12 20:59:57 · 141 阅读 · 0 评论 -
#2020-9-12 不能创建临时变量(第三个临时变量),实现两个数的交换
这是某公司的一道面试。我们平时交换两变量值用的都是定义中间变量来保存某一个值,实现交换。代码如下:int temp = a;a = b;b = temp;该题目不允许使用中间变量,此题可以运用位操作符来实现。如下:#include<stdio.h>int main(){ int a = 0; int b = 0; printf("请输入:a,b\n"); scanf("%d %d", &a, &b); a = a ^ b; b = b ^ a;原创 2020-09-12 20:50:05 · 88 阅读 · 0 评论 -
2020-9-10 C语言实现扫雷
扫雷大家应该都玩过。接下来介绍一下C语言设计扫雷小游戏。所实现的功能是随机分布雷,玩家输入坐标,可显示该位置周围都多少雷涉及知识:一定的编程逻辑数组-二维数组函数设计循环效果图图中有0和1的是给设计者看的雷分布情况。全是‘ * ’的棋盘是给玩家扫雷的。那我们就需要用二维数组来打印两个棋盘,假如我们要打印9 * 9的棋盘,二维数组元素也要为9 * 9吗?,不能,因为我们在设计算法时需要统计坐标周围8个方位雷的个数,假如要统计边界坐标周围雷的个数,那么就会有数组越界的问题,那我们就要在9 *原创 2020-09-10 18:10:39 · 314 阅读 · 0 评论 -
#8-30(C语言实现--三子棋)
实现三子棋游戏主要是运用二维数组知识,我们分文件编写代码。三子棋和五子棋的实现是类似的。下边主要介绍三子棋一个头文件两个源文件game.h //包括函数声明,宏定义game.c //三子棋游戏所需函数的具体实现test.c //负责测试代码实现步骤:1 将棋盘初始化为空格2 打印棋盘(包括分割线)3 玩家输入坐标选择落棋位置4 产生随即坐标作为电脑输入1 将棋盘初始化为空格void Initboard(原创 2020-08-30 11:48:03 · 192 阅读 · 0 评论