c1~c5认证还有微认证现在是什么情况啊,官网好久没有更新了,是完蛋了吗
你说的很对,就是你说的那样。
我的课程设计项目为“学生成绩管理系统”,所用链表为双向链表链表。
涉及到成绩管理则避免不了成绩的排序。
结构体中的项目包括:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
struct student *ahead;
float grade[10];
char name[10];
char x[10];
struct student *next;
}*head, *end, *New, *get, *stu;
设置head指针和end指针。head指向头结点,end始终指向尾节点。
输入数据:
int input(int N, char **G)//数据输入
//变量说明:“N”为考试的科目数量,此处**G为字符串指针数组,其中存储着考试科目。
{
int i, c = 1, icount = 0, s[10], j, k, d;
char r[10];
for (j = 0; j < 10; j++)
s[j] = 0;
while (c)
{
New = (struct student *)malloc(sizeof(struct student));
printf("\t\t输入该名学生姓名(结束请按‘0’):");
scanf("%s", New->name);
if (New->name[0] != 48)
{
printf("\t\t输入该名学生学号:");
scanf("%s", r);
icount++;
strcpy(New->x, r);
New->grade[N] = 0;
for (i = 0; i < N; i++)
{
printf("\t\t%s成绩:", G[i]);
scanf("%f", &New->grade[i]);
if (New->grade[i] < 60)
s[i]++;
New->grade[N] = New->grade[N] + New->grade[i];
}
strcpy(New->mima, "1234");
end->next = New;
New->ahead = end;
end = New;
end->next = NULL;
}
}
else
{
c = 0;
}
}
链表已经创建完成,现在只需要向其中添加数据,下一步祭出我屌炸天 的链表节点排序代码?
此代码运用简单选择排序的排序方法。即,先比较两个节点中数据的大小,并两个选中较大或较小的一个。并让选中的节点与下一个节点中的数据比较直到最后一个节点。比较完毕后将最小的节点接到链表的最后。
当然,开始排序之前,我创建了一个空节点让其存储成绩的数组的每一个元素都等于“-1”将其接到了链表的最后作为新的有序链表与旧的无序链表的边界。在排序完毕后程序自动将此空节点删除。得到的就是新的有序数组。