小白编程题:单链表的简单应用
描述
编程实现一个简易学生信息管理系统,按如下步骤分别用自定义函数实现:
(1) 根据输入信息创建单链表。每个学生的信息包括姓名和成绩;
(2) 输出简易学生信息管理系统(单链表)的所有学生(结点)信息。
I/O
输入格式
根据输入的若干个学生信息创建单链表。每一行代表一个学生信息,以成绩-1作为输入的结束。
输出格式
每个学生信息占一行,姓名和成绩之间以空格分隔,成绩保留一位小数。
输入样例
Cai 61.2
Cai 64.6
Cheng 68.4
Xiao 71.2
Zhang 83.2
Liu 90.4
Xiao 92.6
Cai 96.8
xx -1
输出样例
Cai 61.2
Cai 64.6
Cheng 68.4
Xiao 71.2
Zhang 83.2
Liu 90.4
Xiao 92.6
Cai 96.8
实现
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct student{
char name[10];
float score;
struct student *next;
}node;
void create(node **head){
char name[10];
float score;
while(~scanf("%s %f",name,&score)) {
if (score != -1) {
node *new = (node *) malloc(sizeof(node));
new->next = NULL;
strcpy(new->name,name);
new->score=score;
if (*head == NULL) {
*head = new;
} else {
node *work = *head;
while (work->next != NULL) {
work = work->next;
}
work->next = new;
}
}else{
break;
}
}
}
void printlist(node *head){
node *work=head;
while(work!=NULL){
printf("%s %.1f\n",work->name,work->score);
work=work->next;
}
}
void freelist(node *head){
node *work;
while(head!=NULL){
work=head;
head=head->next;
free(work);
}
}
int main(){
node *head=NULL;
create(&head);
printlist(head);
freelist(head);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具