
C语言学习
胖胖熊℡
这个作者很懒,什么都没留下…
展开
-
递归函数详解(125-126)
1.1编译链接和内存布局。原创 2022-10-21 21:46:42 · 269 阅读 · 0 评论 -
枚举类型(138)
138_枚举类型。原创 2022-09-27 18:58:07 · 176 阅读 · 0 评论 -
共用体(联合体)详解及共用体应用示例(136-137)
136_137共用体(联合体)详解及共用体应用示例。原创 2022-09-26 17:56:12 · 290 阅读 · 0 评论 -
135_结构体位域
135_结构体位域。原创 2022-09-26 17:23:06 · 115 阅读 · 0 评论 -
134_结构体数据成员偏移量的计算
134_结构体数据成员偏移量的计算。原创 2022-09-25 22:10:28 · 177 阅读 · 0 评论 -
133_结构体对齐与大小
133_结构体对齐与大小。原创 2022-09-25 21:33:23 · 133 阅读 · 0 评论 -
132_结构体实现静态链表
132_结构体实现静态链表。原创 2022-09-25 11:33:38 · 210 阅读 · 0 评论 -
函数指针(113-116)
113-116. 函数指针笔记:基础知识 注意类型 两种写法是一个地址 不能计算函数指针所指之物的大小,也不能对其进行加1操作 代码:加减乘除:查表调用函数,开户、存款。泛型打印,快排泛型算法:结构体比较,打印...原创 2022-06-12 18:51:08 · 147 阅读 · 0 评论 -
112.循环移动数组
结果:原创 2022-06-11 18:00:29 · 127 阅读 · 0 评论 -
111.杨辉三角的打印
代码:结果:原创 2022-06-11 15:19:11 · 148 阅读 · 0 评论 -
110 字符串排序
字符串冒泡排序定义一个5*128字符型数组,输入5个字符串并打印结果:模块化: 优化:把字符串的地址存到另一个数组中,只交换这个数组的内容,不改变元数据原创 2022-06-10 19:21:28 · 131 阅读 · 0 评论 -
106.二级指针变量,二维数组与指针,二维数组与函数
参考前面的,一维数组与函数,二维数组与函数 int (*s)[4] : 4字节,存放4个元素的整形数组的地址。int *p[4] : 四元素的数组,每个元素类型都是整形指针。int **s : 存放一级指针的地址。原创 2022-06-10 17:44:31 · 89 阅读 · 0 评论 -
105.格式化字符串输出
#include#include#include#include#include#define N 20int main(){ char buff[N]; int a=100,b=200; //printf("%d %d",a,b); //sprintf(buff,"%d %d",a,b);//返回值是长度stdout scanf("%d %d",&a,&b); sscanf(原创 2022-06-09 19:15:10 · 80 阅读 · 0 评论 -
104.my_atoi函数的实现
【C语言】模拟实现atoi函数可以把小写l转换为1,大写O转换为0原创 2022-06-09 19:00:10 · 145 阅读 · 0 评论 -
102.内存操作函数详解
内存赋值:内存比较,复制:原创 2022-06-09 17:15:23 · 103 阅读 · 0 评论 -
101.void指针变量详解。
结果:原创 2022-06-09 15:57:48 · 200 阅读 · 0 评论 -
94-99.字符串函数使用和实现详解
第一节课:第二节课:函数strcmp结果:原创 2022-06-06 18:29:09 · 154 阅读 · 0 评论 -
92-93.利用函数实现模块化程序设计
利用函数实现模块化程序设计:1.封装:何为函数的封装,就是把代码封装进去,对调用者来说都话就是因此我们的实现功能。(1)调用者(外界)对函数的影响--仅限于入口函数。(2)函数对调用者(外界)的影响--仅限于我们函数的返回值,指针形参。2.就是检查函数的入口参数的有效合法,检查函数是否调用成功。3.函数的规模要小。//.........原创 2022-06-05 20:25:15 · 349 阅读 · 0 评论 -
91.用多文件结构实现计算器程序
用多文件结构实现计算器程序1.counter.h2.counter.cpp3.main.cpp原创 2022-06-05 19:03:23 · 179 阅读 · 0 评论 -
90.多文件结构设计
1.多文件结构 #include,#include""使用尖括号,编译器会到系统路径下查找头文件使用英文双引号"",编译器会首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。2. ifndef是 if not define 的缩写,一种宏定义。它是预处理功能中三种(宏定义,文件包含和条件编译)中的第三种--条件编译。其使用方式是:#define X...#endif//c语言在对程序进行编译时,会先根据预处理命令进行预处理,C语言编译系统包括预处理,编译和链接等部分。#if...原创 2022-06-05 17:10:59 · 584 阅读 · 0 评论 -
88-89.数组,指针和函数的关系
参考过去的文章:C语言一维数组与指针和参数传递原创 2022-06-05 15:22:20 · 94 阅读 · 0 评论 -
87.const与指针变量的关系
第一种情况:不加const关键字第二种情况:所指之物为常量第三种情况:指针为常量第四种情况:所指之物和指针都是常量注意!注意!注意:原创 2022-06-05 15:06:46 · 67 阅读 · 0 评论 -
取值和去地址运算符的结合
取值和去地址运算符的结合原创 2022-06-05 14:47:31 · 108 阅读 · 0 评论 -
给定一整形数组,数组放入随机值,计算出第一大和第二大的值。
给定一整形数组,数组放入随机值,计算出第一大和第二大的值。结果:原创 2022-06-04 19:22:19 · 77 阅读 · 0 评论 -
C语言实现从字符串中计算单词个数,使用状态法
代码:结果:原创 2022-06-04 18:52:42 · 167 阅读 · 0 评论 -
关于srand函数的疑问
关于srand函数的疑问:来源于 3-9 猜数字随机种子。观察这段代码,本身是一个产生随机数打印的代码,num 每次都会由于系统时间的变化,而形成不同的数。但是如果把 srand(time(NULL)); 这段代码放入 while 中会发生什么?结果就是,num 不再是随机值,而是固定的数值,原因可以参考 https://www.imooc.com/wenda/detail/604944,大体意思是伪随机数的产生依赖种子,种子的时间间隔至少1s才可以生成不同的随机数,放在一个循环中时原创 2022-06-04 17:04:46 · 284 阅读 · 0 评论 -
VScode用的一些编译器
以下答案截止至 2021/06/01:MinGW: 编译目标仅兼容 32 位应用程序,最新的官方二进制版本为 GCC 9.2.0。(OSDN)MinGW-w64: 衍生自 MinGW 的项目,编译目标兼容 32 位应用程序与64 位应用程序,最新的官方二进制版本为 GCC 8.1.0。(SourceForge)TDM-GCC: 衍生自 MinGW 和 MinGW-w64 的项目,分为 32 位与 64 位两个版本,32 位版本的编译目标仅兼容 32 位应用程序,64位版本的编译目标兼容 32 位应用程序与原创 2022-06-04 16:23:04 · 2450 阅读 · 0 评论 -
编写一个扫雷游戏,我们首先要清楚游戏规则
编写一个扫雷游戏,我们首先要清楚游戏规则: 扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键打开其周围剩余的无雷格。原创 2022-06-04 15:03:18 · 559 阅读 · 0 评论 -
分块查询和二分查询
1.在数组中查找键盘输入的数(和每行中末尾最大的数比较)#include<stdio.h>#include<assert.h>int findvalue(int (*br)[5],int row,int col,int val){ assert(br !=NULL); int pos = -1; int i=0; while(i<row && val>br[i][col-1]) { /*i原创 2022-05-22 18:44:22 · 133 阅读 · 0 评论 -
++i与i++的区别
++i与i++的区别1. 赋值顺序不同 :i++ 返回原来的值,++i 返回加1后的值。#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>int main(){ int ar[5]={12,23,34,45,56}; int* p=ar; int x=0,y=0; //前置++先加后赋值,后置++先赋值后加,从右向左运算原创 2022-05-22 17:19:50 · 1496 阅读 · 0 评论 -
指针的加一,加的地址和指针的类型有关,如(+sizeof(int)*1)
指针的加一,加的地址和指针的类型有关,如(+sizeof(int)*1)#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>int main(){ int ar[5]={1,2,3,4,5}; int* ip=ar; for(int i=0;i<5;i++) { printf("%p=>%d \n",i原创 2022-05-21 19:47:18 · 280 阅读 · 0 评论 -
空指针,野指针和失效指针
1.空指针1> 没有存储任何内存地址的指针就称为空指针(NULL指针)2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。下面两个都是空指针:int *s1 = NULL;int *s2 = nil;2.野指针:野指针是指向一个非法的或已销毁的内存的指针。对野指针进行解引用操作是非法的。在C/C++等语言中,悬空指针(Dangling Pointer)指的是一个指针的指向对象已被删...原创 2022-05-21 18:37:06 · 705 阅读 · 0 评论 -
输入年份,打印全年的日历。 每周的第一天应为星期日。 星期制在我国正式使用是清末(1905年),但其来源却是中外时间文化的殊途同归。古人观天象计时间除了最明显的日
输入年份,打印全年的日历。每周的第一天应为星期日。星期制在我国正式使用是清末(1905年),但其来源却是中外时间文化的殊途同归。古人观天象计时间除了最明显的日、月二星外,还观测到太阳系中的另外五大行星,初步掌握了这七颗星出没时间及其运行规律,这七星按日、金星、水星、火星、木星、土星、月的顺序“轮流值日”,就形成了最为原始的星期制。由此顺序也可看出,一周的第一天应为星期日。历史起源星期作为时间周期最早起源于巴比...原创 2022-05-21 11:29:17 · 813 阅读 · 0 评论 -
编写程序,找出用户输入的年份的最早年月日,程序需要提示用户一个一个地年月日,当用户输入0或负数时,程序显示出已输入的最早年月日:
编写程序,找出用户输入的年份的最早年月日,程序需要提示用户一个一个地年月日,当用户输入0或负数时,程序显示出已输入的最早年月日:代码:#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>int main(){ int year=1,month=1,day=1; int myear=INT_MAX,mmonth=12,mday=31; w原创 2022-05-20 11:42:26 · 310 阅读 · 0 评论 -
编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数:
编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或附属时,程序显示出已输入的最大负整数:代码#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>int main(){ int val=0; int max=0; while(1) { printf("input a numbe原创 2022-05-20 11:25:58 · 1971 阅读 · 1 评论 -
C语言随机函数为什么rand()每次产生的随机数都一样
之所以rand()每次的随机数都一样是因为rand()函数使用不正确。各种编程语言返回的随机数(确切地说是伪随机数)实际上都是根据递推公式计算的一组数值,当序列足够长,这组数值近似满足均匀分布。如果计算伪随机序列的初始数值(称为种子)相同,则计算出来的伪随机序列就是完全相同的。这个特性被有的软件利用于加密和解密。加密时,可以用某个种子数生成一个伪随机序列并对数据进行处理;解密时,再利用种子数生成一个伪随机序列并对加密数据进行还原。这样,对于不知道种子数的人要想解密就需要多费些事了。当然,这种完全相同的序列对原创 2022-05-20 11:13:06 · 7632 阅读 · 0 评论 -
编程:随机生成1-100之间的数字,如果猜对了结束游戏,如果猜错则继续猜并提示所猜测的数字是大于还是小于所指定的数,最终提示猜对所用的次数。
编程:随机生成1-100之间的数字,如果猜对了结束游戏,如果猜错则继续猜并提示所猜测的数字是大于还是小于所指定的数,最终提示猜对所用的次数。原创 2022-05-20 11:09:12 · 3597 阅读 · 0 评论 -
编写程序,输出9*8乘法口诀
编写程序,输出9*8乘法口诀原创 2022-05-20 10:45:15 · 217 阅读 · 0 评论 -
如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。
如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。原创 2022-05-20 10:32:17 · 3241 阅读 · 0 评论 -
牛顿迭代法求平方根
牛顿迭代法求平方根1.假设要求6的平方根,当Xn和X(n+1)的差值小于0.000001时,可以认为已经找到了精确值。2.根据牛顿迭代法的步骤,首先猜测一个值X1,猜测X1=6/2=3。原创 2022-05-20 10:19:55 · 4374 阅读 · 0 评论