//编写程序STUDENT *Create(STUDENT studs[],int n)。STUDENT是一个结构类型,包含姓名、成绩和指针域。studs数组中存储了n个STUDENT记录。create函数的功能是根据studs数组建立一个链表,链表中结点按成绩降序排列,函数返回链表头指针。
#include <stdio.h>
#include <stdlib.h>
typedef struct stu
{
char name[10];
float score;
struct stu * next;
}STU;
int main()
{
int n;
int i, j;
STU temp;
STU tmp;
printf("要输入记录的总个数:");
scanf("%d", &n);
STU *p = (STU*)malloc(n * sizeof(STU));
for(i = 0;i < n;i++)
{
scanf("%s%f",p[i].name, &p[i].score);
}
for(i = 0;i < n;i++)
{
for(j = 0;j < n - i;j++)
{
if(p[j].score < p[j + 1].score)
{
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
}
}
for(i = 0;i < n - 1;i++)
{
p[i].next = &p[i + 1];
}
p[n - 1].next = NULL;
for(i = 0;i < n;i++)
{
printf("%s\t%f\n",&p[i].name,p[i].score);
}
}