1、已知学生信息包括学号和一门课成绩,将N个学生的信息放入一个带有头结点的单链表中,找出成绩最高者并输出。
2、输入一个学生的学号,查找是否有这个学生,如果有,将他的相关信息输出。
2 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
#include <stdio.h> #include<stdlib.h> #define N 10 typedef struct data{ long number; int score; } Student; typedef struct node{ Student data; struct node *next; }LinkList; void main() { Student students[N]; long n=-1; //准备数据 for(int i=0;i<N;i++) { students[i].number=10000+i; students[i].score=(i+1)*10; } printf("学生信息:\n"); for(i=0;i<N;i++) { printf("学号: %ld\t成绩:%d\n",students[i].number,students[i].score); } //创建单链表 LinkList *list,*s,*r; list=(LinkList*)malloc(sizeof(LinkList)); r=list; for(i=0;i<N;i++) { s=(LinkList*)malloc(sizeof(LinkList)); s->data=students[i]; r->next=s; r=s; } r->next=NULL; r=list->next; s=list->next; while(r!=NULL) { if(r->data.score > s->data.score) { s=r; } r=r->next; } printf("最高分为:%d 学号为:%ld\n",s->data.score,s->data.number); printf("请输入要查询的学生学号:"); scanf("%ld",&n); r=list->next; while(r!=NULL) { if(r->data.number==n) { break; } r=r->next; } if(r==NULL) { printf("不存在该学生\n"); }else{ printf("学号为:%ld的学生成绩为%d\n",r->data.number,r->data.score); } }
- 2 回答
- 8 关注
- 1412 浏览
添加回答
举报
0/150
提交
取消