C语言课程设计 设计思路

请解释以下程序的设计思路voidStatistic(Linkl){Node*pm,*pe,*pc,*pt,*pa;Node*r=l->next;if(!r){printf... 请解释以下程序的设计思路
void Statistic(Link l)
{ Node *pm,*pe,*pc,*pt,*pa;
Node *r=l->next;
if(!r)
{ printf("\n=====>提示:没有资料可以统计!\n");
system("pause");
return;
}
pm=pe=pc=pt=pa=r;
while(r!=NULL)
{ if(r->data.jisuanji>=pc->data.jisuanji)
pc=r;
if(r->data.gaoshu>=pm->data.gaoshu)
pm=r;
if(r->data.waiyu>=pe->data.waiyu)
pe=r;
if(r->data.totle>=pt->data.totle)
pt=r;
if(r->data.average>=pa->data.average)
pa=r;
r=r->next;
}
printf("-------------------------------统计结果-------------------------------\n");
printf("总分最高者:\t%s %d分\n",pt->data.name,pt->data.totle);
printf("平均分最高者:\t%s %d分\n",pa->data.name,pa->data.average);
printf("计算机最高者:\t%s %d分\n",pc->data.name,pc->data.jisuanji);
printf("高数最高者:\t%s %d分\n",pm->data.name,pm->data.gaoshu);
printf("外语最高者:\t%s %d分\n",pe->data.name,pe->data.waiyu);
printstart();
system("pause");
}
展开
 我来答
wchyumo2011
2015-07-07 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2760万
展开全部
首先假设最高成绩在第一个节点上,所以初始化指针指向第一个节点,然后遍历数组,如果遍历到的当前节点的对应成绩比指针指向的成绩高,那么就调整指针指向当前节点。最后遍历完整个列表后,即可得到所需要的结果,因为指针已经分别指向了各个最高成绩的节点出,输出即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式