
c语言
文章平均质量分 75
C语言的学习笔记
一个正直的男孩
在小的坚持*365,散发出的威力也不可小视
展开
-
数据结构 排序
导读:这有下列复杂度中logN->N->N*logN->N^2 一般有N*logN的时间复杂度已经是快的飞起了,且如果待排序的数据越多那么他和N^2的差距会越来越大 且开始前先和大家说时间上没有十全十美的东西,所也下面的排序也是,他们各有各应用场景,不要像上世纪的医学一样原创 2021-10-24 15:25:37 · 177 阅读 · 0 评论 -
C语言 程序是如何跑起来的
有没有想过一个程序是如何运行的?平时点击运行,就直接出来了 那么它在点击运行到生成可执行程序这一期间到底经历了什么让我们一探究竟思维本章精华翻译预编译编译汇编链接运行...原创 2021-10-09 22:34:16 · 454 阅读 · 1 评论 -
C语言进阶之旅(14)动态内存
许久不见,也是好久没有更新,期间其实是在刷题,刷的牛客题,里面的题不是太难也感觉上不了台面就没有写成博客,今天所带来的内容就是动态内存文章目录动态内存malloccallocreallocfree巩固升华动态内存❓❓❓动态内存是啥他有啥用智者模式????动态内存是一个程序员自己开辟,自己释放的一块空间,且在堆上开辟的大小:系统有多大它就可以有多大原创 2021-07-23 13:44:47 · 390 阅读 · 3 评论 -
C语言基本大纲思维导图
本思维导图原创 2021-07-11 20:44:57 · 279 阅读 · 2 评论 -
C语言进阶之旅 (刷题篇)一数列中插入一个数并保持正序
文章目录方法1思路方法2方法1思路#define size 50#include<stdlib.h>#include<stdio.h>int compar(const void*p1,const void*p2){ return (*(int*)p1) - (*(int*)p2);}void Min(int *arr,int j,int n,int k){ int* frist = arr+k;//首元素 int* second = frist; int原创 2021-06-30 12:13:26 · 432 阅读 · 1 评论 -
C语言进阶之旅 (13)自定义类型
文章目录思维导图结构体自引用内存对齐思维导图结构体概念,初始化,访问请看初识结构体结构体可以不写标签,就是匿名结构体,他只能用一次自引用类似函数递归自己调用自己struct Node {int data; struct Node* next;};前面存数据,后面存下个位置的指针,没有指向就吧指针域改为空指针内存对齐结构体是怎么存到内存中的呢?#include <stdio.h>struct S1 { char c1; int i;原创 2021-06-13 19:53:38 · 295 阅读 · 6 评论 -
C语言进阶之旅(12)搞定字符串和内存函数
这篇是如何使用库函数之少写点代码哈哈哈,为啥有库函数呢?,应为这个大家都用,且,频率还高,每次用还要自己实现,麻烦所以就诞生了库函数,方便????文章目录思维导图字符串函数strlen求字符串长度strcpystrncpystrcmpstrncmpstrcatstrncatstrstrstrtokstrerrorperroe字符操作函数内存函数memcpymemcmpmemmove总结思维导图字符串函数strlen求字符串长度计算\0之前字符的个数详细介绍strcpy拷贝字符串到目标原创 2021-06-10 10:20:13 · 303 阅读 · 8 评论 -
C语言进阶之旅(每日一题)字符串左旋
左旋 1个字符abcd -->bcda左旋俩个abcd ---->cdab解法 一遍历数组法首元素地址 2. 字符串元素个数 3. 外循环为小于你所旋的大小 4. 创建俩个指针,一个指向首元素,一个指向的是第二个元素 5. 内循环小于元素个数减一 6. 里面就是交换void left_revolve(char *p,int str){ int k = 0; scanf("%d",&k); int i = 0; for ( i = 0; .原创 2021-06-05 18:16:22 · 281 阅读 · 1 评论 -
C语言进阶之旅 (每日一题)杨氏矩阵
这个杨氏矩阵是每行每列都在递增,其实这个杨氏矩阵还是挺有趣的不过我找到的资料只有一个杨氏矩阵勾数你选中的这个位置为中心点,然后衍生出去形成这样一个7然后数下有几个数,emmm大致这样吧代码求解方法1思路找到二维数组第一列最大元素,和要找的数比大小如果小那么就在这个一列大则去下一行继续比-#define line 3#define arge 3//杨氏矩阵void print(int arr[][arge], int l, int a){ int i =.原创 2021-06-05 15:44:05 · 186 阅读 · 0 评论 -
C语言进阶之旅 (11.5)指针下 提升篇
文章目录题1题二(函数传参数)一维数组二维数组传参题1判断字符串是否相等易错点,内存如何存储常量字符串#include <stdio.h>int main() { char str1[] = "hello bit."; char str2[] = "hello bit."; char *str3 = "hello bit."; char *str4 = "hello bit."; if(str1 ==str2) printf(原创 2021-06-05 12:10:07 · 570 阅读 · 11 评论 -
C语言进阶之旅(11)指针进阶上 精华篇
写个感想吧,不知不觉又过了一个月,学C语言已经过了俩个月,博客也有一搭没一搭大更新着,虽然不知道写的文章对别人是否有帮助,或许有吧,比较还有人给我点赞呢哈哈哈,OK我会继续输入(听课看书写作业)输出的(写博客)文章目录思维导图指针一维数组指针数组数组指针二维数组二维数组的基本概念二维数组指针思维导图本次内容大致是这些,笔墨重在二维数组和函数指针先学新的东西的时候先回忆一下之前的知识吧初级指针以及操作符优先级复习一次操作符一维原创 2021-06-03 21:23:42 · 967 阅读 · 16 评论 -
C语言进阶之旅(每日一题)如何成为福尔摩斯
故事背景某地一男子被杀害警方经过调查得出嫌疑人有四个分别是A,B,C,D一下是他的口述:A说不是他B说是CC说是DD说是C有三人说了真话一人说了假话那么到底是谁呢?分析登登凳灯,登登凳灯凳灯(自行脑补)配合音乐点这里沉睡的小五郎推理代码实现这里比较难的是代码的转换(也可能是我第一次碰到,菜狗)int main(){ char killer = 0; for ( killer = 'A'; killer <= 'D'; killer+原创 2021-05-29 21:44:46 · 521 阅读 · 7 评论 -
C语言进阶之旅 (每日一题)打印菱形
零基础都会的菱形怎么打印呢?哦直接printf造起esayint main(){ printf(" *\n"); printf(" ***\n"); printf(" *****\n"); printf(" *******\n"); printf(" *********\n"); printf(" *******\n"); printf(" *****\n"); printf(" ***\n"); printf(" *原创 2021-05-29 12:10:31 · 174 阅读 · 0 评论 -
C语言进阶之旅 (每日一题)水仙花数
思维导图大致思路水仙花概念获得他指数幂,计数器剥离每位开平方pow方函数判断代码注意事项,博主自己犯的统计个数写出%10(粗心)一定要把值符给变量,不然改变的就是循环判断我写成place。。。(梅开二度)int main(){ int i = 0; for ( i = 0; i < 100000; i++) { int count = i;//求的是i位的指数幂,但是直接改i会导致循环出问题 int index = 1;//1位数的幂为1 whi原创 2021-05-28 17:32:47 · 217 阅读 · 0 评论 -
C语言进阶之旅(每日一题)换汽水
思维导图换汽水花钱买汽水喝汽水换汽水不写具体解题思路,只写我自己遇到的错误代码易错点1: 判断部分,你不除二的话你会死循环,你看能最后剩下1个瓶子2: 换汽水的时候需要加上之前换剩下来的int main(){ int money = 0; scanf("%d", &money); int soda = money;//喝了的汽水 int empty = money; while (empty/2) { soda += empty / 2; empt原创 2021-05-28 16:51:47 · 263 阅读 · 0 评论 -
C语言进阶之旅(每日一题)杨辉三角
概念杨辉三角解释用处确定二项式系数这个数学模型思维导图思想他是一个二维数组创建一个二维数组这里可以看出他行和对角都是1那么先初始化他而在里面中随便一个数都是由他肩上的数向加得到那么就只知道了,得到这个数需要上面那俩数yh[i][j] = yh[i - 1][j - 1] + yh[i - 1][j];总工程创建数组这里用了定义宏方便到时候更改#define a#defin b int yh[a][b];//创建一个二维数组放值原创 2021-05-25 23:30:04 · 411 阅读 · 2 评论 -
C语言进阶之旅(10)数据存储
文章目录思维导图思维导图原创 2021-05-24 21:50:34 · 995 阅读 · 11 评论 -
C语言进阶之旅(9)新老朋友结构体
文章目录结构体用处写法写一个人结构体传参拓展结构体用处形容一个复杂对象类似数组又不同类似:元素的集合不同:(数组存的是同类型变量)(结构体存的是不同类型变量)写法类型花括号后面一定要加分号,语法规定,你不写会语法报错struct stu {//成员变量};需要用的时候和int 创建变量一样拿起来定义即可对象(1)局部创建对象就是你有一个玩具他只属于你,只有你可以玩int main(){int a;//同理struct stu s;//对象}原创 2021-05-21 17:47:54 · 502 阅读 · 5 评论 -
C语言进阶之旅 (8)新老朋友指针
文章目录思维导图指针是啥指针类型拓展指针初始化野指针编程好习惯指针运算二级指针指针和数组指针数组总结思维导图指针是啥指针是变量,存变量的地址变量值在内存中,所以保存的也是内存地址可以通过地址到到内存中的值指针大小是(32平台4字节,64平台8字节)例子int a=0;//a是变量//把a的地址个pint *pa=&a;*p=10;//解引用就能找到a改变他的值指针类型charshortintfloatlongdouble指针类型决定太可以访问多位,和原创 2021-05-16 00:28:58 · 247 阅读 · 1 评论 -
C语言进阶之旅(7)操作符
文章目录算数操作符拓展单目操作符双目操作符三目操操作符算数操作符 + - * / %(+)和(-)不在多说这个都懂(*)这个符号是数学中的✖️这个也不多说用法和数学中一样(/)这个是数学中的➗,取商(%)模,取余(/)和(%)用法(/)int a =6;int b =4;int c=a/b;--------------(%)int a =6;int b =4;int c=a%b;运行结果(/)他是取的商列子:6/2=商3余0运行(%)他原创 2021-05-12 22:01:32 · 676 阅读 · 7 评论 -
C语言进阶之旅 番外篇(扫雷)
故事背景,你要穿越丹麦海滩汇报敌军情况,那里危机四伏,应为那里埋了许多地雷,文章目录思维导图菜单==是否要执行任务初始化雷区打印雷区埋雷排雷思维导图菜单==是否要执行任务void menu(){ printf("时间:二战 地点:丹麦海滩,任务:去对岸送敌军情报,你想过去必须穿过丹麦海滩\n"); printf("\n"); printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"); printf("@@@@@@@@@@ 1.原创 2021-05-01 01:36:56 · 467 阅读 · 2 评论 -
C语言进阶之旅 番外篇递归(青蛙跳台阶和汉诺塔)
文章目录青蛙跳台阶汉诺塔具体流程图提示总结青蛙跳台阶这个篇幅不多比较简单汉诺塔问题比较简单青蛙跳台阶思想青蛙跳台阶和斐波那契数列基本一样区别多了几个判断看这个图就可以推导出来公式Fib(n-1)+Fib(n-2)想法实现int jump_step(int n){ if (n == 0)//这个其实可以不用写,我单纯没事干,我测试跑了一下输入0,然后程序崩了,就加了一句 { return 0; } if (n == 1)//1的时候只有1种 { retur原创 2021-04-28 23:58:50 · 450 阅读 · 3 评论 -
C语言进阶之旅 番外篇(基础无AI算法三子棋)
三子棋是黑白棋的一种,将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。其实就是小时候玩的井子棋文章目录原创 2021-04-26 02:20:49 · 764 阅读 · 5 评论 -
C语言进阶之旅(6)递归vs迭代
递归温馨提示:函数部分中比较难一块,需要大量的积累和练习,不懂的地方多调试,和画图,才能有递归的思想!!!!文章目录递归思维导图例子思路例子1列子2思维导图 看这个思维导图,我大致说一下他的运用场景,和下面的例子比较好理解 递归自己直接或间接调用自己,把一个大型的问题层层转换成一个小的问题原创 2021-04-22 01:23:18 · 2021 阅读 · 11 评论 -
C语言进阶之旅(5)
初识函数文章目录函数库函数自定义函数函数 函数有库函数和自定义函数库函数库函数是C语言自带的函数,用着些函数需要引相应的头文件大致有这些,看着好多其实大致分原创 2021-04-17 23:42:50 · 232 阅读 · 1 评论 -
C语言进阶之旅(4)
c语言进阶之旅(4)循环和分支习题练习:最大公约数、素数(100~200)、三个数比大小,按从大到小排列,打印闰年文章目录最大公约数思路(1)思路(2)素数思路(1)思路(2)思路(3)最大公约数 先看最大公约数是啥意思,俩数,能被一个数整除列:24 18 最大公约数是(6)思路(1)思路(1):那个最大公约数不可能大于最小数本身,那么就用最小的去和俩数去除,如果不是那个值就-1,继续去除,因原创 2021-04-14 14:38:33 · 1067 阅读 · 6 评论 -
C语言进阶之旅(3)
循环与二分查找 字符判断打印乘法口诀表想法1,用循环,俩数相乘,看代码列int main(){ int i = 0; int j = 0; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%d ", i,j,i*j); } printf("\n"); } return 0;}看下运行结果图可以看到这不是我们想要的结果,可是为什么呢???看代码列原创 2021-04-12 15:39:19 · 1267 阅读 · 2 评论 -
C语言进阶之旅(2)
C语言进阶————>20-100素数最大公因数素数定义:素数只能被1和他本身整除#include<stdio.h>int main(){ int i = 0; int j = 0; for(i=0;i<=200;i++) { for(j=2;j<=i;j++)//素数只能被1和他自身整除 { if(i%j==0) break; }原创 2021-04-10 23:51:17 · 415 阅读 · 0 评论 -
C语言进阶之路(番外篇float的存储方式)
c语言Float的存储方式 浮点型存储方式是根据IEEE(电子和电子协会) 754规定的,(-1)^S* M *2^E符号位(Sign):S=0为正数,S=1为负数指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储尾数部分(Mantissa):1<= m >2列:float a = 5.5//的储存方式转换2进制为101.1符号s=0尾数m=1.011指数e(101.1—>1.001移了多少位)=2M和E的存储方式有不同因原创 2021-04-05 17:06:36 · 4406 阅读 · 2 评论