#include<stdio.h> #include <malloc.h> typedef struct node{ char xh[20]; int cj; struct node next; Node; void main() Node *h=NULL,nd,max; int n,i; scanf("%d",&n); for(i=6;i<n;i++) nd=malloc(sizeof(①)); scanf(%s%d",nd->xh,&nd->cj); if(h==NULL) (h=nd;nd->next=NULL; else < nd->next=h; h=nd; ) max=h; for(nd=h;nd?=NULL;nd=nd->next) if(nd->cj>max->cj)②; printf("Themax scoreis &d of %s",max->cj,max->xh); while(h!=NULL) {③h;=h->next;free(nd);),
时间: 2024-03-14 14:45:01 浏览: 77
空①处应填写 Node,表示动态分配一个结构体节点。
空②处应填写 max=nd,表示将当前节点设置为成绩最高的节点。
空③处应填写 free(h),表示释放当前节点所占用的内存。
完整程序如下:
```c
#include<stdio.h>
#include<malloc.h>
typedef struct node{
char xh[20];
int cj;
struct node *next;
}Node;
void main(){
Node *h=NULL, *nd, *max;
int n, i;
scanf("%d", &n);
for(i=0; i<n; i++){
nd = (Node*)malloc(sizeof(Node));
scanf("%s%d", nd->xh, &nd->cj);
if(h == NULL){
h = nd;
nd->next = NULL;
}
else{
nd->next = h;
h = nd;
}
if(i == 0 || nd->cj > max->cj)
max = nd;
}
printf("The max score is %d of %s\n", max->cj, max->xh);
while(h != NULL){
nd = h;
h = h->next;
free(nd);
}
}
```
该程序实现了动态链表用于保存一批学生的学号和成绩,并找出成绩最高的同学并显示结果。在输入时,每读入一个节点,都将其插入到链表头部。同时,利用变量max记录成绩最高的同学的节点,最后输出其信息。最后,释放链表中所有节点所占用的内存。
阅读全文