#include<stdio.h> #include<stdlib.h> struct data{ int num; char name[10]; int result; struct data * next; }; struct data *head,*tail; struct data *Creat_Stu_Doc(); struct data *DeleteDoc(struct data *head,int score); void Ptrint_Stu_Doc(struct data *head); int main() { int score; Creat_Stu_Doc(); scanf("%d",&score); DeleteDoc(head,score); return 0; } struct data *Creat_Stu_Doc() { struct data *p; int num; scanf("%d",&num); head=tail=NULL; while(num!=0){ p=(struct data *)malloc(sizeof(struct data)); p->num=num; scanf("%s",p->name); scanf("%d",&p->result); if(head==NULL){ head=tail=p; } else{ tail->next=p; tail=p; } scanf("%d",&num); } tail->next=NULL; return head; } struct data *DeleteDoc(struct data *head,int score) { struct data *p,*q; p=head; while(p!=NULL){ if(p==head){ if(p->result<score){ head=p->next; free(p); p=head; } } else { if((p->next)->result<score){ p->next=(p->next)->next; q=p; free(q); } } p=p->next; } } void Ptrint_Stu_Doc(struct data *head) { struct data *p; p=head; while(p->next!=NULL){ printf("%d %s %d\n",p->num,p->name,p->result); } }
时间: 2024-04-23 22:22:49 浏览: 18
这是一段 C 语言代码,它的功能是创建一个链表,然后删除链表中所有成绩低于指定分数的节点,并输出剩余节点的信息。具体来说,代码中定义了一个结构体 `data`,包含了学生的学号、姓名和成绩,以及指向下一个节点的指针。通过函数 `Creat_Stu_Doc()` 可以创建一个链表,并返回链表的头指针;通过函数 `DeleteDoc()` 可以删除链表中所有成绩低于指定分数的节点;通过函数 `Ptrint_Stu_Doc()` 可以输出链表中剩余节点的信息。在 `main()` 函数中,首先调用 `Creat_Stu_Doc()` 函数创建链表,然后通过 `scanf()` 函数读入一个分数,接着调用 `DeleteDoc()` 函数删除链表中所有成绩低于该分数的节点,最后程序结束。
相关问题
#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode { ElemType da
`#include <stdio.h>`和`#include <stdlib.h>`是C语言中的两个头文件。`<stdio.h>`是标准输入输出头文件,提供了一些用于输入输出的函数和宏定义。`<stdlib.h>`是标准库头文件,提供了一些常用的函数和宏定义,如内存分配、随机数生成等。
在你的代码中,`typedef int ElemType;`定义了一个类型别名,将`int`类型命名为`ElemType`。
`typedef struct LNode`定义了一个结构体类型`LNode`,结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。在这里,`LNode`结构体中的成员变量还没有完整定义,因此代码截断了。
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct
这段代码是C语言中的头文件引用和一些定义的示例。其中,`#include <stdio.h>`和`#include <stdlib.h>`是用来引入标准库函数的头文件。`stdio.h`包含了输入输出相关的函数,如`printf`和`scanf`;`stdlib.h`包含了一些常用的函数,如内存分配函数`malloc`和随机数生成函数`rand`。
`#define MAXSIZE 100`是一个宏定义,用来定义一个常量`MAXSIZE`,它的值为100。
`typedef int ElemType;`是用来给`int`类型起一个别名`ElemType`,方便在代码中使用。
至于代码中的结构体部分,由于你没有提供完整的代码,所以无法给出具体的解释。但一般来说,结构体用于定义一种自定义的数据类型,可以包含多个不同类型的成员变量。