想用文件进行录入信息并对信息排序,但为什么输出名字的时候出现乱码


#include<stdio.h>
#include<conio.h>
#define  Max 100
typedef struct
{
    char num[10];
    char name[10];
    int score;
} Student;
typedef struct
{
    Student list[Max];
} SeqList;

void Heapadjust(SeqList *L,int low,int high)
{
    int i,j;
    Student temp;
    i=low;
    j=2*i;
    temp=L->list[i];
    for(; j<=high; j*=2)
    {
        if(j<high&&L->list[j].score<L->list[j+1].score)
            j++;
        if(temp.score>=L->list[j].score)
            break;
        else
        {
            L->list[i]=L->list[j];
            i=j;
        }
    }
    L->list[i]=temp;
}
void Heapcreat(SeqList *L,int n)
{
    int i;
    for(i=n/2; i>0; i--)
    {
        Heapadjust(L,i,n);
    }
}
void Heapsort(SeqList *L,int n)
{
    int i;
    Student temp;
    Heapcreat(L,n);
    for(i=n; i>1; i--)
    {
        temp=L->list[1];
        L->list[1]=L->list[i];
        L->list[i]=temp;
        Heapadjust(L,1,i-1);
    }
}
int main()
{
    FILE *fp;
    SeqList *L;
    int n,i=1;
    L=(SeqList*)malloc(sizeof(SeqList));
    if((fp=fopen("student.txt","r+"))==NULL)
    {

        getchar();
        return 1;
    }
    fscanf(fp,"%d\n",&n);
    while(!feof(fp))
    {

            fscanf(fp,"%s%s%d\n",L->list[i].num,L->list[i].name,&L->list[i].score);
            i++;
    }

    Heapsort(L,n);

    printf("\n");
    for(int i=1; i<=n; i++)
    {
        printf("%s%s%d\n",L->list[i].num,L->list[i].name,L->list[i].score);
    }
    fclose(fp);
    getchar();
    getchar();
    return 0;
}

img

img