写一子函数,实现动态建立链表,输入学号为001、002、003的3个同学的信息:学号,姓名,三门课成绩,平均分,当输入学号为0时结束建立链表
写一子函数,以上述链表作为实参,要求实现检索并返回成绩最高的同学信息指针
在主函数中使用函数指针实现子函数的调用,并输出“成绩最高的学生姓名+is the best”。
用c语言或c++写一程序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2022-06-14 20:15关注
#include <stdio.h> #include <stdlib.h> typedef struct _linknode { int num; char name[20]; int score[3]; float avg; struct _linknode *next; }linknode,*linklist; void creat(linklist head) { linklist q = head; linklist p = NULL;; int i=0; while(true) { p = (linklist)malloc(sizeof(linknode)); scanf("%d",&p->num); if(p->num==0){ break; } scanf("%s%d%d%d",p->name,&p->score[0],&p->score[1],&p->score[2]); p->avg = (p->score[0] + p->score[1]+p->score[1])/3.0; p->next = NULL; q->next = p; q = p; } } linklist LinkListSort(linklist head) { float avg=head->next->avg; linklist res=head->next,p = head->next; while (p->next!=NULL) { p=p->next; if(avg<p->avg){ avg=p->avg; res=p; } } return res; } int main() { linklist head = (linklist)malloc(sizeof(linknode)); linklist p = NULL,h; head->next = NULL; creat(head); h = LinkListSort(head); if(h!=NULL) printf("%s is the best",h->name); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看