C++顺序表编译结果是乱码


#include <stdio.h>//printf、scanf
#include <stdlib.h>
#include <string.h>
#include<errno.h>
#define MAXSIZE 55          //最大长度
#define LIST_INCREMENT 5        //增加的存储长度
#define OVERFLOW -2
#define OK 1
#define ERROR -1
#define N 52       //原始表长&数据长度

typedef struct      //成员结构体 
{
int bianhao;
char xuehao[10];
char name[10];
char xingbie[10];
char xibie[10];
char yingyu[10];
int shuxue;
int jisuanji;
int zongfen;
}stu;
 
typedef struct        /*定义数据链表*/
{
    stu *elem;       
    int length;      //顺序表长度
    int listsize;    //顺序表存储空间
}SqList;
 
int InitList (SqList *L)          /*初始化顺序表*/
{ L->elem=(stu*)malloc(sizeof(stu)*MAXSIZE); //为顺序表分配一个大小为MAXSIZE的数组空间
 if (!L->elem)
  exit(OVERFLOW); //存储分配失败退出
 L->length = 0; //空表长度为0
 return OK;
}
void Read(SqList *L)         /*读取文件数据*/
{
    int i=0;
   FILE *fp;
   fp =fopen("计科62107.txt","r");     
    if((fp=fopen("计科62107.txt","r"))==NULL)
     {
      printf("can't open the file!!!\n");
      printf("error:%s\n",strerror(errno));
      exit(0);
     }
    while(!feof(fp))
 {
  fscanf(fp,"%d %s %s %s %s %s %d %d",&L->elem[i].bianhao,&L->elem[i].xuehao,&L->elem[i].name,
  &L->elem[i].xingbie,&L->elem[i].xibie,&L->elem[i].yingyu,
  &L->elem[i].shuxue,&L->elem[i].jisuanji); 
  printf("%d %s %s %s %s %s %d %d ",L->elem[i].bianhao,&L->elem[i].xuehao,&L->elem[i].name,
  &L->elem[i].xingbie,&L->elem[i].xibie,&L->elem[i].yingyu,
  &L->elem[i].shuxue,&L->elem[i].jisuanji);
  i++;
  L->length++;
 }
 fclose(fp);
} 
int main()
{
    SqList L;
    InitList(&L);
    Read(&L);
    
}

img

char yingyu[10];这是个啥呀,不应该是int吗
printf里的&全部删掉,不要打印地址