c语言链表萌新,萌新一枚,关于链表问题求大佬解答
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码如下
#include
#include
#include
struct student
{
int num;
float score;
struct student *next;
};
struct student *creat();
struct student *del(struct student *head,int num);
void print(struct student *head);
int n;
int main()
{
system("color f5");
int a;
struct student *stu;
stu = creat();
print(stu);
printf("输入要删除的学生学号:");
scanf("%d",&a);
del(stu,a);
print(stu);
system("pause");
return 0;
}
struct student *creat()
{
struct student *head,*p1,*p2;
p1 = p2 = (struct student *)malloc(sizeof(struct student));
printf("请输入学生学号:");
scanf("%d",&p1->num);
printf("请输入学生的分数:");
scanf("%f",&p1->score);
head = NULL;
n = 0;
while(p1->num)
{
n++;
if(n == 1)
{
head = p1;
}
else
{
p2->next = p1;
}
p2 = p1;
p1 = (struct student *)malloc(sizeof(struct student));
printf("请输入学生学号:");
scanf("%d",&p1->num);
printf("请输入学生的分数:");
scanf("%f",&p2->score);
}
p2->next = NULL;
return head;
};
void print(struct student *head)
{
struct student *p;
p = head;
if(head)
{
do
{
printf("学号为%d的学生的成绩是:%f\n",p->num,p->score);
p = p->next;
}while(p);
}
}
struct student *del(struct student *head,int num)
{
struct student *p1,*p2;
if(head)
{
printf("\n这是一个空表。");
goto END;
}
else
{
p1 = head;
while(p1->num != NULL&&p1->num != num)
{
p2 = p1;
p1 = p1->next;
}
if(p1->num == num)
{
if(p1 == head)
{
head = p1->next;
}
else
{
p2->next = p1->next;
}
n = n-1;
}
else
{
printf("%d找不到。",num);
}
}
END:
return head;
};
c语言链表萌新,萌新一枚,关于链表问题求大佬解答相关推荐
- 有没有检查c语言编译错误的软件,求大佬解答,为什么这个程序编译软件检查不出错误...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include /* malloc()等 */ #include #include #include /* exit() */ #de ...
- c++实现含有中文字符的字符串逆转,如:“我是小萌新”转换成“新萌小是我”
一个中文字符占两字节,所以逆转也得两两字符进行逆转,如上图 可得出0和8,1和9,2和6,3和7进行下标交换 由此可得出以下代码: #include <iostream> #include ...
- rust油桶用什么打_腐蚀rust新手入门指南 游戏新萌拿好不谢!
川北在线核心提示:原标题:腐蚀rust新手入门指南 游戏新萌拿好不谢! 如何开始游戏? 巴拉巴拉那么多现在开始步入正轨吧! 点击find game 就进入了服务器列表,在这里你可以加入官方的服务器(热 ...
- 【 C 】在单链表中插入一个新节点的尝试(二)
在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...
- 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现
写在前面 不久前学习了数据结构线性表-数组-链表的相关知识,用C/C++语言实现了 单链表的系列相关操作 .见往期博客: 数据结构实验2_C语言_基于顺序表的非递减有序表的合并.线性表元素的增.删.改 ...
- 链表问题18——向有序的环形单链表中插入新节点
题目 一个环形链表从头节点开始的顺序为不降序的顺序,也就是如1->2->2->2->3->4这样的链表叫做不降序,同时由最后的节点指回头节点.给定这个环形单链表的头节点h ...
- 输入一个链表,反转链表后,输出新链表的表头(ACM格式)(美团面试题)
输入一个链表,反转链表后,输出新链表的表头 其实这道题就是一个反转链表的题,但是因为自己不会建立链表,所以特地采用ACM的格式试着编写一下,这也美团给我出的一道实习算法题. public class ...
- 【 C 】简化双链表插入函数(对在双链表中插入一个新值的简明程序的简化)
目录 背景 第一个技巧是语句提炼(statement factoring) 第二个简化技巧 最终简化版本 背景 上篇博文:[ C ]在双链表中插入一个新值的简明程序,讲了一个简明的双链表插入函数,那个 ...
- 【 C 】在双链表中插入一个新值的简明程序
上两篇博文讲了如何在单链表中插入一个值: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) 这篇博文讲解如何在双链表中插入一个值. 单链表的替代方案就是双 ...
最新文章
- 从编程基础到系统设计,这份数据工程师面试宝典全都有 | 资源
- java13页_Java 13 新特性及实战案例
- data:image/png;base64,, CTF杂项base64图片隐写-河南省第二届金盾信安杯
- C–gcc命令行下的参数
- linux gcc常用编译选项总结
- viewpager 跳转到指定页面
- SilverLight是什么?(来自Csdn)
- 力扣59-螺旋矩阵(C++)
- SQL Server执行计划面试问题
- 计算机术语 gc 是什么意思,gc是什么意思(女生网络用语gc的含义)
- python爬虫贴吧_Python爬虫——抓取贴吧帖子
- 网吧web电影服务器系统,网吧电影服务器如何安装制作?
- ei指什么_什么是EI?
- SpringBoot: 启动Banner在线生成工具
- RC微分电路、积分电路和低通滤波电路LPF
- JavaScript整合版——后端程序员学js,只读一文直接零基础入门,大学生期末考试不挂科宝典。
- 深入理解黑客攻击-键盘记录器
- 33220a 编程C语言,基于AT89C51单片机的数字式波形发生器(非常完整).doc
- 如何将pdf转换成ppt,pdf转ppt方法
- 如何恢复Mac上未保存的Word文件?
热门文章
- Kafka科普系列 | 原来Kafka中的选举有这么多?
- Union-Find 并查集算法详解
- 2021音视频开发的“坑”,等你来填!
- ElasticSearch搜索语法进阶学习(搜索+聚合,过滤+聚合)
- 数据结构与算法之判断一棵树是否为搜索二叉树、判断一棵树是否是完全二叉树
- 贾扬清撰文详解Caffe2:从强大的新能力到入门上手教程
- Python异步编程Async/Await
- 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】
- 如何使用 一行代码 搞定一组数据的(极值、平均值、中位数、四分位数、数量统计和标准差)
- 使用crontab定时保存top信息到文件,并保存到数据库中