- 博客(38)
- 收藏
- 关注
原创 期末测试2--函数题---指针链表如何输出?
head=head->next)-------正确的写法。1.遍历指针链表 指针head在做for循环遍历的时候。总结写代码时候遇到的问题。总结写代码时候遇到的问题。
2024-06-14 12:03:03
84
原创 期末测试2(1)---找最大//排序从小到大---区别
改的是整体的 inform【j】-----因为最后输出的就是inform【j】的所有对应的数据。这个是我想到比较题型中如果要输出的不只是最大的,而是输出从小到大的问的AI。但是这个适用于找最大的、字符串这样最后只输出一个最大项比较好。对于结构体不好将比较的这个数所带的一系列的对应的数据一起输出。这个是我一开始按这个思路写错的,是答案错误,编译没有错误。冒泡排序适合用到比较重输出从小到大或者从大到小的排序。然后将第一个设置为最大的,依次用循环比较后面的,这个是小杜写的找最长字符串的题。找最长或者最短字符串。
2024-06-14 11:15:54
77
原创 期末复习4---PTA之前题目复习
怎么在不能用strlen也就四没有string.h头文件的时候实现统计字符串的长度?sum,average,max这些变量到底在什么时候去定义,定义完后分别该怎么用?有一个最简单的办法,就是代码写的长,但是不用担心这样的问题。sum最好定义到结构体里面,后面才可以用stu[i].sum。从大到小或者从小到大排序----冒泡排序---双重循环i,j。max最好直接int max=0;更改以后的简便一点的。
2024-06-11 14:40:45
219
原创 期末复习-----4(PTA之前的编程测试题)
1.怎么样用第一个是总分最高的学生,输出时候不只能输出最高总分,还能对应学生,小杜 if(i==0){max=stu[i]}很好的解决了我的问题。想要用max.name,主函数中定义初始化结构体的时候就需要struct student stu[n],max;想、连同max一起定义。2.循环中要不要加stu[i].还是知己stu,答案是需要加。想要用stu[i].sum,结构体中就必须要加入sum;
2024-06-11 11:24:35
168
原创 单链表的头插法 尾插法----期末复习2
/让r结点的指针域置空(链表创建完成)ElemType x;//x为链表数据域中的数据。//x为链表数据域中的数据。在尾插法中,`L` 始终指向头结点,而 `r` 随着插入过程不断更新,始终保持指向当前最后一个节点。//将结点插入到表头L-->|1|-->|2|-->NULL。//单链表中的数据域。//将r结点移动到最后一个节点。//将结点插入到表头L-->|2|-->|1|-->NULL。//单链表的建立(头插法)//单链表的建立(尾插法)//初始化一个空链表。
2024-06-10 09:19:25
367
原创 PTA练习中的易错易混题-----期末复习1
相当于要把S替换成L,做L的功能项,而L也要换成S 的功能,L=S,就意味着换了两个节点内容,但是起始题目要求将S插入到头部,原来L的内容仍然是头部应该有的信息,只是将S插入了头部,S所指向的内容应该还是头部该有的内容,也就是一开始L所具备的内容。这里,我们需要设置S的`next`指向P的下一个结点(即B),并设置P的`next`指向S。(S的下一个元素是P原本的下一个元素)(S的下一个元素是原来的头结点L)所以,我们需要将S的`next`指向当前的头结点L,(P的下一个元素改为S)
2024-06-10 09:02:18
194
原创 错题第八九章内容
--需要找一个新的和已知字符串一样大小来存储它,下面对它进行操作的时候不会改变原本字符串的大小内容。定义了一个字符数组-----就是一次性输入好多字符串,而上面是一次只输入一个字符串,令第一个是最大的。可以用回文的方式,两个指针,交换位置,到最后两个指针相遇,就为逆序输出。从后往前移,不然后一个元素会被覆盖。最后一个位置=开头+长度-1。如果p< q 的时候退出循环。但是需要求字符串长度。
2024-05-31 09:45:50
208
原创 数组循环右移
重点学习一点:学会定义一个新的变量来存储一个数,使得最后要进行操作后不会改变原来数的内容。将最后一个数(新定义变量中存储的那个数)存储到第一个数,即a[0]中。一直用一个新的量来存储数组中最后一个数。将前一个数赋值给后一个数。
2024-05-29 19:56:41
174
原创 链表---综合各个平台--大一下重新学习
1.申请空间p=(struct stud_node*)malloc(sizeof(struct stud_node))strcpy(p->name,name)//对于 char 类型的。//对于 int 类型的。//head之后正常进行程序--操作尾指针 tail。事先不知道有多少个数据需要处理-----链表。对于顺序输出:就是插入尾部---尾指针。对于逆序输出:就是插入头部--头指针。//到了末尾的时候也需要特殊处理。//考虑 head 为空的时候。//返回头指针 head;
2024-05-26 20:16:47
151
原创 结构、结构与数组、结构与指针
在大多数情况下是可以互换使用的,它们都用于指定一个整数值的输出或输入。将会把它当作八进制数来处理;如果有前缀0x(如0x54),它将以十六进制来处理。只与十进制形式的整数相匹配。例如,如果输入的数字有前缀0(如025),可以匹配八进制、十进制、十六进制表示的整数,而。此外,对于刚开始学习C语言的新手来说,建议使用。来避免混淆,因为它始终只代表十进制整数。没有差别,都可以正确输出十进制整数。,用于接收命令行参数。是C语言中main函数的。
2024-05-25 11:25:46
243
原创 动态内存管理:申请内存
Free(p)----释放内存空间,也就是释放p所指向的,同时也要p = NULL,使得p不再是原来的那个空间里的数据,而是相当于一开始的p什么都不做。例如:int* p= (int*)malloc(INT_MAX)------其中int max是C语言中很大的数,也就是需要很大的空间去存储。------头文件: errno.h---打印错误信息。如果返回空指针------会报错误-----printf(找最大值和找最小值还有一种方法:用指针最大最小一起得出。
2024-05-17 20:31:39
268
原创 C语言中 枚举与const
枚举:enum+枚举类型的名字{名字0,名字n};3.第一个名字定义不一定就是 0,也可以是从1开始。程序中不要直接出现数字,需要用const+字母。2.类型只能是 int。
2024-05-17 20:30:31
172
原创 文件---C语言
-->ch = fgetc(pf) / /一个字符一个字符读入。写入字符流 “w”和读入字符流 “r”//判断如果pf==NULL,输出错误。//先读入或者写入,返回类型是*pf。将原本的字符串变成了不同格式的数据。一次性可以对文件写入一行字符串。设置一个字符数组来接收字符串。//写文件或者读文件。
2024-05-09 17:28:12
178
1
原创 指针写作业中出现的错题和易混不懂的题
对于 `int` 型的二级指针变量,它既可以指向4.同类型的一级指针变量,也可以指向同类型的普通(非指针)变量。3.定义一个指针数组并初始化赋值若干个字符串常量,则指针数组并不存放这些字符串,而仅仅指向各个字符串。型的二级指针变量,它既可以指向同类型的一级指针变量,也可以指向同类型的普通(非指针)变量。4.如果函数的返回类型是指针,则可以返回0。,用于指向一个有5个元素的数组。
2024-04-18 20:43:16
211
1
原创 二级指针---矩阵
1 2 3 4 5 arr[0] p+0:第一行的地址 *(p+0):第一行的元素 *(*(p+0)+0):第一行第一个元素的值。2 3 4 5 6 arr[1] p+1:第二行的地址 *(p+1):第一行的元素 *(*(p+1)+0):第二行第一个元素的值。3 4 5 6 7 arr[2] p+2:第三行的地址 *(p+2):第一行的元素 *(*(p+2)+0):第三行第一个元素的值。注意:二维数组的首元素是它的第一行。数组名==数组首元素地址。
2024-04-18 20:36:55
113
1
原创 指针(一)字符指针 数组指针 指针数组
p1 和 p2 都被const char*定义以后就意味着指针不能被修改,同时地址也不能被修改,也就是说p1和p2所指向的字符串首地址都是相同的,所以p1==p2。如果比较的是内容,那么arr1和arr2是相等的,但是现在比较的是字符串首字符的地址,这个是不相等的。,这里的数组名表示的依然是整个数组,所以&数组名取出的是整个数组的地址。(3)arr--->没有取地址符号的时候也是数组元素首元素的地址。(1)&arr[0]--->取地址取的是数组元素首元素的地址。(2)arr输出的是首元素的地址。
2024-04-18 10:06:13
213
1
原创 大数据结构
也就是没有说明max的类型是int ,也不会有任何的影响编译,系统会猜测max的类型。Include “max.h”:系统会先在当前目录(.c文件所在的目录找)+ 到编译器系统目录中找------自己给的头文件。Include <stdio.h> :系统会直接去编译器标准库的头文件中的目录中寻找-------系统的头文件。前面加上static就使得它成为只能在所在的编译单元中被使用的函数。前面加上static就使得它成为在所在的编译单元中被使用的全局变量。(1)先写一个main 函数下的代码。
2024-04-14 19:20:11
194
1
原创 多个函数-程序结构
一、程序结构的基本框架1.先写主干就是各种函数,你需要程序做哪些事情,分别将这件事情分为不同的小事,对应写不同的函数2.写主体的main函数3.写控制函数4.写输入输出以及自己要用的函数
2024-04-10 21:27:41
124
1
原创 文件包含“ # include< > 和 #include “ ” ”
【2】在程序编译时起作用,不是真正的C语句,不需要加分号------与宏一样,都是编译预处理指令。【1】必须要在开头写 #【4】编译预处理功能。
2024-04-10 21:22:51
144
1
原创 与函数类似----宏
*经过我课上的学习,我认为最大的区别就是函数需要写变量名的类别,但是宏不会。【1】宏名一般用大写字母,以与变量名区分(但是不是必须使用大写字母)【6】宏要注意定义变量时表达式是否加了括号,下文会举例说明。【5】可以通过“#undef”强制指定宏的结束范围。【8】定义宏不需要加分号但是在主函数中赋值宏时需要。例如:x = MAX (x,y);【2】宏定义不是C语言,后面不得跟分号。【7】定义宏的时候必须使用#【3】宏定义可以嵌套使用。【4】宏可以写在任何位置。
2024-04-10 21:21:08
173
1
原创 进阶------ 函数+指针
注意:这里的第三个量交换指针的时候需要定义为指针的类型写法int* temp,意味着temp这个也是个指针,这样才是传指针,但是我们发现传指针也不能改变两个数字。通过调试发现交换的只是x和y的值,并非a和b,也就是说x和y的地址与a和b的地址不对应,所以不能改变a和b的值。首先我们按照基本学习的方法一步一步写函数。为什么要用指针来写函数呢?例如题目:利用函数交换两个数的位置。为什么没有交换a和b的值呢?所以我们想到用指针传地址。
2024-04-09 21:28:29
131
原创 进阶------ 函数+指针
注意:这里的第三个量交换指针的时候需要定义为指针的类型写法int* temp,意味着temp这个也是个指针,这样才是传指针,但是我们发现传指针也不能改变两个数字。通过调试发现交换的只是x和y的值,并非a和b,也就是说x和y的地址与a和b的地址不对应,所以不能改变a和b的值。首先我们按照基本学习的方法一步一步写函数。为什么要用指针来写函数呢?例如题目:利用函数交换两个数的位置。为什么没有交换a和b的值呢?所以我们想到用指针传地址。
2024-04-09 21:24:26
88
原创 对于已经学过函数但还不太扎实的小伙伴们,这些都是浓缩重点需要掌握的函数基础知识,比如自定义该怎么定义,还有就是重要的网站需要大家记录一下就OK
库函数中举一个例子,串拷贝函数strcpy(s2,s1):将s1中的内容复制到s2中。Memset(定义的字符串,‘新字符’,改前几个位置就填几)注意:在‘*’中只能放字符,不能放字符串,否则将会错误输出。例如你想写一个两个数相加的函数,那么你可以写一个。Int x,int y:函数参数(形参)负责完成特定的代码,是独立的。Int:函数返回类型是整型的。返回类型+函数名+函数参数。Memset--内存设置。可以查询所有的库函数。
2024-04-09 21:01:50
188
原创 ++a a++ (*a)++ ++(*p) *(p++)
p1为1,*p1++也为1,也就是说printf先输出的是*p1,输出以后*p1再进行自加,到了下一个printf的时候输出的才是*p1++,(*p1)++:就是在上面*p++的基础上加了一个1,本质上和*(p1)++是一样的。如果不会可以在编译器上增加printf来进行一步一步的化解。*p1++: 指针从0到1,也就是1;a++:先将a的值赋给b, a再加1。++a, a先自加,然后再赋值给b。a[0]:就是数组第一个元素。
2024-04-08 20:53:25
169
原创 C语言大一下,重头学习,总结各种易混知识点 打卡Day1
(注意:后期我会着重去写关于函数和复合语句的相关内容,因为我的函数基础比较薄弱,希望大家可以互相指点,和我一起共同进步)**复合语句:有{ }
2024-04-01 21:02:14
198
原创 C语言大一下,重头学习,总结各种易混知识点 打卡Day1
打印出来的补空格,a与bc之间有7个空格,bc与ef之间有6个空格,也就是说a+空格的个数==8,bc+空格的个数==8;----------打印出来的是X;\0:null字符,表示没有内容,\0就是\ddd这类转义字符的一种,用于字符串的结束标志,其ASCLL值是0;\\:想打印\test\bit,为了不让编译器将它们识别为转义字符正确写法应该是printf(“\b:退格符,光标会回退一个格,但是不删除字符,但是如果\b后面还会有字符的话,就会删除字符。
2024-04-01 20:42:04
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人