努力
Lange_Taylor
从零开始
展开
-
数组的灵活使用
创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void Init(int arr[],int len) { pri...原创 2019-03-29 16:19:35 · 257 阅读 · 0 评论 -
练习动态内存开辟
mallocvoid* malloc (size_t size);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。1.如果开辟成功,则返回一个指向开辟好空间的指针。2.如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。3.返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。4.如果参数 s...原创 2019-04-24 22:39:57 · 119 阅读 · 0 评论 -
c总结
原创 2019-05-02 17:28:22 · 296 阅读 · 1 评论 -
文件操作函数
fopen fclose函数系统需要在内存中为每个读写的文件开辟一段缓存,缓存中保存文件信息的是FILE结构体,打开文件时就会获得指向FILE的指针。为什么要用缓存呢,因为硬盘读取时很慢的,机械硬盘的读写时间都是毫秒级,而内存读写是纳秒级的,差了一百万倍。函数原型为File* fopen(const char* filePath, const char* mode)和int fclose(F...原创 2019-04-27 20:10:51 · 1389 阅读 · 1 评论 -
结构体总结
知识点:结构体类型创建结构体初始化结构体内存对齐位段,位段计算机大小。枚举+联合。自定义结构体类型:用途:抽象现实中的事物,提取主要特征.结构体声明:例如描述一个学生:struct(结构体关键字) stu(结构体变量名称){ char name[1024];//成员类型+变量名称 int age; char sex[20]; char id[1024];};//...原创 2019-04-22 22:31:16 · 215 阅读 · 0 评论 -
strchr
strchr函数实现#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Strchr(const char *str, int ch) { assert(*str != NULL); if (*str == '\0') { return NULL; } char* ptr...原创 2019-04-15 12:42:40 · 117 阅读 · 0 评论 -
strcmp
strcmp函数实现#include <stdio.h>#include <stdlib.h>#include <assert.h>char *Strcmp(const char *str1, const char *str2) { assert(*str1 != NULL); assert(*str2 != NULL); int i = 0...原创 2019-04-15 11:50:35 · 111 阅读 · 0 评论 -
strstr
实现strstr函数#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Strstr(const char* str1,const char* str2) { assert(str1 != NULL); assert(str2 != NULL); if (*str2 == '\...翻译 2019-04-15 11:00:11 · 1023 阅读 · 0 评论 -
memmove
memmove函数实现#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>void* Memmove(void* dest, const void* src, size_t num) { assert(NULL != src &&am...原创 2019-04-17 15:37:34 · 102 阅读 · 0 评论 -
通讯录C语言
熟练结构体的使用转移表的方式降低代码复杂度#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>//通讯录可以用来存储1000个人的信息,每个人的信息包括://姓名、性别、年龄、电...原创 2019-04-24 22:46:46 · 142 阅读 · 0 评论 -
线性结构之顺序表
什么是线性结构?线性结构是一个有序数据元素的集合.线性结构中都包含什么内容?线性表,栈,队列,双队列,数组,串。什么是顺序表?顺序表的分类?顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。顺序表一般可以分为:1.静态顺序表:使用定长数组存储。2.动态顺序表:使用动态开辟的数组存储。用c语言来实现顺序表的基本操...原创 2019-05-05 22:40:40 · 1020 阅读 · 0 评论 -
高级IO
ICMP协议:网络层协议—探测网络数据封装在IP分组中,IP协议直接为ICMP提供服务pingNAT/NAPT:网络地址转换服务部署在网关设备,对流经网关设备的IP报文,替换源端地址为自己的地址 代理服务:工作在应用层,实现数据的中间代理转发的工作;高级IO:五种典型IO/多路转接模型 阻塞/非阻塞/信号驱动/异步/多路转接IO发展历程:效率以及对...原创 2019-08-16 15:09:03 · 176 阅读 · 0 评论 -
每日一题
NowCoder最近爱上了五子棋,现在给你一个棋局,请你帮忙判断其中有没有五子连珠(超过五颗也算)。输入描述:输入有多组数据,每组数据为一张20×20的棋盘。其中黑子用“*”表示,白子用“+”表示,空白位置用“”表示。输出描述:如果棋盘上存在五子连珠(无论哪种颜色的棋子),输入“是”,否则输出“否”。示例1输入.................... .................原创 2019-08-20 15:17:53 · 229 阅读 · 0 评论 -
内存泄露 智能指针
为什么要使用智能指针:智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。RAII://RAII(Resource Acquisit...原创 2019-08-13 20:31:29 · 305 阅读 · 0 评论 -
通用拷贝函数
模板:【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活【缺陷】1.模板会导致代码膨胀问题,也会导致编译时间变长2.出现模板编译错误时,错误信息非常凌乱,不易定位错误通用的拷贝函数这里结合两者优点将(内置类型使用memcpy ) (自定义类型使用赋值)1.枚举类型判断2.类型萃取(这里只列举部分内置类型)...原创 2019-07-22 15:10:05 · 174 阅读 · 0 评论 -
二叉树概念
1.掌握树的基本概念树:是一类重要的非线性数据结构,是以分支关系定义的层次结构。每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树2. 掌握树的相关概念节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点...原创 2019-05-28 18:31:20 · 15937 阅读 · 2 评论 -
Linux入门命令
了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp1./proc Linux内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、 改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中, 而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接...原创 2019-05-13 11:18:54 · 206 阅读 · 0 评论 -
linux入门常用工具
常用的牛逼的编辑器VimVim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。EclipseEclipse是一款很酷的开源代码编辑器,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript...原创 2019-05-25 22:16:31 · 279 阅读 · 0 评论 -
单链表
单链表的基本操作:SList.h文件#pragma oncetypedef int SDataType;// 链表的节点 typedef struct SListNode{ SDataType _data; struct SListNode* _pNext;}Node, *PNode;// 链表的结构,给一个头指针保存链表第一个节点的地址 typedef struct ...原创 2019-05-07 17:51:25 · 284 阅读 · 0 评论 -
memcpy
memcpy函数实现#include <stdio.h>#include <stdlib.h>#include <string.h>void* Memcpy(void* dest,const void* src,rsize_t num) { const char* psrc = (const char*)src; char* pdest = (cha...原创 2019-04-17 15:14:18 · 1872 阅读 · 0 评论 -
LFSR
c语言中实现LFSR;#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <math.h>#define DIGIT 34void conversion(unsigned long long num,int* arr) { for (int i =...翻译 2019-04-12 21:49:52 · 3605 阅读 · 0 评论 -
复杂交换字符串
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。student a am ii ma a tnedutsi am a student#include <stdio.h>#include <stdlib.h>void ma...转载 2019-04-04 23:30:42 · 146 阅读 · 0 评论 -
按位异或
编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)充分理解按位异或操作符的作用.#include <stdio.h>#include <stdlib.h>int main() { int arr[] = { 0,0,1,1,2,2,3,4,4,5,5,6,6 }; int i = 0; int j = a...原创 2019-04-04 22:33:12 · 2115 阅读 · 1 评论 -
平均值的位操作符求法
不使用(a+b)/2这种方式,求两个数的平均值。#include <stdio.h>#include <stdlib.h>int main() { int x = 10; int y = 20; int z = (x >> 1) + (y >> 1); printf("%d\n", z); system("pause"); retu...原创 2019-04-04 22:14:41 · 189 阅读 · 0 评论 -
位操作符
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:255...翻译 2019-04-04 22:07:18 · 135 阅读 · 0 评论 -
n的阶乘
递归和非递归分别实现求n的阶乘 .递归:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int factorial(int n) { if (n == 1) { return 1; } else { return n * factorial(n - 1); }...原创 2019-03-31 13:04:04 · 868 阅读 · 0 评论 -
strlen函数
递归和非递归分别实现strlen .递归:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int strlen(char *str){ if (*str == '\0') //当传入的字符串中没有字符 return 0; //字符串长度为0 else re...翻译 2019-03-31 12:45:33 · 266 阅读 · 0 评论 -
输入一个非负整数,返回组成它的数字之和
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和.#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int DigitSum(unsigned int n) { if (n > 9) { return n % 10 + DigitSum(n ...原创 2019-03-31 00:02:57 · 423 阅读 · 0 评论 -
n^k
编写一个函数实现n^k,使用递归实现#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>float Power(float n,int k) { if (k == 0) { return 1; } else if (k == 1) { return n; } els...原创 2019-03-30 22:59:25 · 328 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面。
调整数组使奇数全部都位于偶数前面。输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。#include <stdio.h>#include <stdlib.h>void ReviseParity(int* arr,int len) { int i = 0; for (i = 0; i <...原创 2019-04-08 10:30:08 · 110 阅读 · 0 评论 -
杨氏矩阵查找
有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 9#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdli...原创 2019-04-08 11:07:53 · 113 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串。
判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#inclu...翻译 2019-04-09 18:09:41 · 147 阅读 · 0 评论 -
旋转字符串
//实现一个函数,可以左旋字符串中的k个字符。//ABCD左旋一个字符得到BCDA//ABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>void RotateString(char* arr,i...原创 2019-04-09 17:27:26 · 125 阅读 · 0 评论 -
杨辉三角c语言实现
在屏幕上打印杨辉三角#include <stdio.h>#include <stdlib.h>#define N 20int main(){ int arr[N][N] = { 0 }; int i = 0; for (i = 0; i < N; i++) { int m = 0; for (m = 0; m < N - i; m++) ...翻译 2019-04-03 17:14:17 · 5413 阅读 · 0 评论 -
谁是凶手!
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。将题目中的语句逐句翻译即可,用循环判断.#include <stdio.h>#include <stdlib.h>in...原创 2019-04-03 15:32:56 · 503 阅读 · 2 评论 -
五位运动员参加了10米台跳水比赛,有人让他们预测比赛结果,各位选手都只说对了一半,请编程确定比赛的名次
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include <stdio.h>#include <stdlib.h>int main(){ int a ...翻译 2019-04-03 15:10:14 · 320 阅读 · 0 评论 -
扫雷
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <time.h>int blank_count_already_show = 0;int Menu() { printf("*****************************\n"); p...原创 2019-04-03 14:35:29 · 113 阅读 · 0 评论 -
strcpy
strcpy函数实现:#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Strcpy(char* dest, char* src) { assert(dest != NULL); assert(src != NULL); char* str = dest; while ((...翻译 2019-04-12 01:13:59 · 107 阅读 · 0 评论 -
喝汽水问题.
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。39瓶.面试情况下还可以借一瓶变为40瓶#include <stdio.h>#include <stdlib.h>int main() { int money = 20; int bottle = money; int sum = money; while (bottle ...原创 2019-04-12 00:33:38 · 243 阅读 · 0 评论 -
各种排序代码实现
基于C语言实现的Sort.h文件:#pragma once//时间复杂度:O(N^2)//空间复杂度:O(1)//稳定性;稳定//冒泡排序void BubbleSort(int arr[], int len);//应用场景;数据量小,接近有序//时间复杂度:O(N^2)//空间复杂度:O(1)//稳定性;稳定//插入排序void InsertSort(int arr[]...原创 2019-08-16 16:22:06 · 485 阅读 · 0 评论