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); } //創(chuàng)建單鏈表 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的學生成績?yōu)?d\n",r->data.number,r->data.score); } }
- 2 回答
- 8 關注
- 1458 瀏覽
添加回答
舉報
0/150
提交
取消