int maxscore(node* L, int mode) {//查找各科最高分 int max = 0; node* p = L->next; if (mode == 1) {//高数最高分 while (p != NULL) { if (p->math > max) { max = p->math; } p = p->next; } return max; } else if (mode == 2) {//英语最高分 while (p != NULL) { if (p->english > max) { max = p->english; } p = p->next; } return max; } else if (mode == 3) {//数据结构最高分 while (p != NULL) { if (p->shujujiegou > max) { max = p->shujujiegou; } p = p->next; } return max; } else if (mode == 4) {//web最高分 while (p != NULL) { if (p->web > max) { max = p->web; } p = p->next; } return max; } else if (mode == 5) {//数据库最高分 while (p != NULL) { if (p->shujuku > max) { max = p->shujuku; } p = p->next; } return max; } else if (mode == 6) {//总分最高分 while (p != NULL) { if (p->sum > max) { max = p->sum; } p = p->next; } return max; } }
时间: 2024-03-28 14:39:21 浏览: 141
实验 5 循环结构程序设计-单重循环实验 6 循环结构程序设计-多重循环
这段代码中的函数 maxscore 接受两个参数,一个是链表的头节点 L,另一个是 mode,表示要查找哪一科目或者总分的最高分。函数中使用一个变量 max 来保存最高分,并且使用指针 p 来遍历整个链表。根据 mode 的不同,分别在遍历链表的过程中找到对应科目的最高分或者总分的最高分,并将其保存在 max 变量中,最后返回 max 变量。
需要指出的是,这段代码中的 if-else 分支比较多,可读性不太好。可以考虑使用一个 switch-case 语句来代替这些 if-else 分支,代码会更加简洁易懂。
阅读全文