![](https://img-blog.csdnimg.cn/20210505143014781.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题训练
文章平均质量分 53
学习知识,刷题巩固
赏一杯茶:
学无止境
展开
-
【C语言学习】链表的反转打印
头部插入与尾部插入链表一、 链表的创建二、反转链表的创建一、 链表的创建前面提到过,链表是由各个结点组成,而每个结点由数据和指针(存储地址)组成,下面上图供理解该链表的实现是基于尾部插入,创建一个结构体指针,随着结点的创建总是指向最后一个结点int n = 0, i = 0, data = 0; scanf("%d", &n); struct a* list = NULL;//如何找到这个链表,用list指向第一个结点 struct a* tail = NULL;//用tail指原创 2021-04-05 22:43:02 · 1185 阅读 · 6 评论 -
【C语言学习】——————链表的重新链接与动态内存的释放
链表中指定结点的删除书接上回,当时是将指定结点赋予特定指限制输出。原文链接如下:https://editor.csdn.net/md/?articleId=114953286转换下思路:不把该结点的地址保存在上一个结点的指针域中,相当于把指定结点之外的结点再次串为一个新链表。遍历链表查找指定结点int del = 0; scanf("%d", &del); struct a* cur = list; while (cur) { if (cur->data == del)原创 2021-03-28 16:48:52 · 1788 阅读 · 3 评论 -
【C语言学习】——————数据结构之链表
一道数据结构题来认识链表其实用数组也可以来实现该题,但是题目要求链表结构实现,正好浅学一下数据结构。尾部插入实现单链表链表由多个结点链接而成,前一个结点中包含着下一个结点的地址,还包含所存储的数据;由此知,每个结点应该是结构体变量,可根据要存储多少数据,来动态开辟内存空间,这里我们使用malloc函数。结构体和动态内存开辟代码如下:struct a{ int data; struct a* next;};struct a* p = (struct a*)malloc(sizeof(st原创 2021-03-17 22:51:56 · 1934 阅读 · 7 评论 -
【C语言刷题训练】——————图形打印
目录1. 二维数组打印打印指定图形2. 字符串比较3. qsort函数再应用及出现问题(待解决)一、 二维数组如题,打印空心三角形,如果还按照以前的方法直接去输出,也可以,但是用二维数组先将其输入,再输出,这样输入和输出的时候都可以去控制条件,相较于直接输出的一层控制条件,二维数组更优(下面会有例子供证明)。可以发现找空心的规律不是那么容易,那么反着来,把非空心的地方填充进‘*’,剩下的就是空心的。1. 第一列均非空心。2. 行数和列数相等,非空心。3. 最后一行非空心。规律出来了,代原创 2021-03-02 21:31:20 · 1046 阅读 · 5 评论 -
【C语言刷题训练】——————一元二次方程
一元二次方程解法一元二次方程求解有很几种方法是我们在做题中最常使用的;包括:1、直接开平方法;2、配方法;3、公式法;4、因式分解法。如果让计算机去求解,我想公式法应该是直观有效的。使用公式需要△ = b^2 - 4* a *c进行判别,这里面涉及到开方与乘方的问题,还涉及到虚数的问题。上网得知,库函数sqrt与pow分别涉及到开方与乘方,虚数的问题没有解决,自己手动变相反数+i,技术菜无奈(=.=)。如下:突发奇想,给pow函数的变量y传0.5不就相当于开方嘛!实验证明确实可行原创 2021-02-28 21:52:13 · 2692 阅读 · 9 评论 -
【C语言刷题训练】——————水仙花数
void order(int arr[],int s){ int i=0; int j=0; int tmp=0; for(i=0;i<s;i++) { for(j=0;j<s-i-1;j++) { if(arr[j]<arr[j+1]) { tmp=arr[j]; arr[j]=arr[j+1];原创 2021-02-27 20:51:46 · 2763 阅读 · 5 评论 -
【C语言刷题训练】——————ASCII表
仔细读题,题目描述的是“多组输入”,我们可以借助while循环来实现!通过查阅,大写字母的ASCII码值+32为对应的小写字母。看代码:但是,接下来测试时,值却不是我们所期待的。这里多出来个*,于是我去仔细查阅了scanf的用法,而我们输入’A’后敲击回车,缓冲区真正出现的是’A\n’,scanf函数这一次把’A’录走了,下次录走了’\n’,而’\n’的ASCII码值+32后就是*!问题到此算是发现了,可是怎么解决呢。我们可以在进入循环时,可以用getchar()去录入。看下效果:..原创 2021-02-25 19:08:32 · 2291 阅读 · 6 评论