同志们看看这个错在哪里啦?
#include <stdio.h>#include <stdlib.h>
#include <string.h>
typedef struct Lnode
{
char num[10];
char nam[15];
int score1;
int score2;
int score3;
float ave;
struct Lnode *next;
} stutype,*Linklist;
stutype *p,*q;
Linklist L;
int main()
{
int n,i,j;
scanf("%d",&n);
L=(stutype*)malloc(sizeof(stutype));
p=L->next;
for(i=0; i<n; i++)
{
p=(stutype*)malloc(sizeof(stutype));
scanf("%s %s %d %d %d",p->num,p->nam,&p->score1,&p->score2,&p->score3);
p->ave=(p->score1+p->score2+p->score3)/3;
p=p->next;
}
float a[n],temp;
q=L->next;
for(i=0; i<n; i++)
{
a[i]=q->ave;
q=q->next;
}
for(i=0; i<n-1; i++)
{
for(j=1; j<n; j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
p=L->next;
while(p)
{
for(i=0; i<n; i++)
{
if(a[i]==p->ave)
{
printf("%s %s %d %d %d %.2f %d",p->num,p->nam,p->score1,p->score2,p->score3,p->ave,i+1);
}
}
p=p->next;
}
return 0;
}
红字处用DEBUG检查总是报错,但不知错在哪里!大神们帮帮忙!题目如下:
标题: 学生信息管理
时 限: 1000 ms
内存限制: 20000 K
总时限: ms
描述: 用链式存储结构实现对一个班级学生信息管理。设计程序求出每个人的平均成绩并按平均成绩由高到底排序后输出学生记录。
输入: 人数n
人员记录1 (格式为: 学号 姓名 成绩1 成绩2 成绩3)
人员记录2
输出: 人员记录x 1
人员记录y 2
…
人员记录z n
输入样例: 3
1 孙俪莉 76 78 89
2 章子怡 72 56 67
3 刘德华 56 84 90
输出样例: 1 孙俪莉 76 78 89 81.00 1
3 刘德华 56 84 90 76.67 2
2 章子怡 72 56 67 65.00 3
提示:
来源: