写一个小小的学生信息管理系统,帮忙看错在哪里?
自己改来改去,现在代码可能有点乱啦。
#include <stdio.h>管理 系统,数据结构
#include <malloc.h>
#define MaxSize 50
typedef struct
{
char No[5];
char name[10];
float score;
int age;
} Student;
typedef struct
{
Student data[MaxSize];
int length;
} SqList;
void Create_List(SqList &);
int Empty_List(SqList L);
int Delete_List(SqList *L,int i);
void Print_List(SqList L);
int main()
{
SqList L;
Create_List(L);
Print_List(L);
return 0;
}
void Create_List(SqList &A)
{
//L=(SqList *)malloc(sizeof(SqList));
A.length=0;
int n=0;
printf("请输入要创建的学生个数:\n");
scanf("%d",&n);
printf("请依次输入学生的年龄,姓名,学号,分数:\n");
for(int i=0;i<n;i++)
{
scanf("%d%s%s%f",&A.data[i].age,A.data[i].name,A.data[i].No,&A.data[i].score);
}
}
int Insert_List(SqList *L,Student &e,int i)
{
Student *p,*q;
if(i<1||i>L->length+1)
return 0;
q=&L->data[i-1];
for(p=&L->data[L->length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return 1;
}
int Delete_List(SqList *L,int i)
{
if(Empty_List(*L)==1)
{
return 0;
}
for(int j=i-1;j<=L->length-2;j++)
L->data[j]=L->data[j+1];
return 1;
}
int Empty_List(SqList L)
{
if(L.length==0)
return 1;
else
return 0;
}
void Print_List(SqList L)
{
int j=0;
printf("年龄 姓名 学号 分数\n");
for(j=0;j<=L.length-1;j++)
{
printf("%d %s %s %f\n",L.data[j].age,L.data[j].name,L.data[j].No,L.data[j].score);
}
}
#include <stdio.h>
#include <malloc.h>
#define MaxSize 50
typedef struct
{
char No[5];
char name[10];
float score;
int age;
} Student;
typedef struct
{
Student data[MaxSize];
int length;
} SqList;
void Create_List(SqList &);
int Empty_List(SqList L);
int Delete_List(SqList *L,int i);
void Print_List(SqList L);
int main()
{
SqList L;
Create_List(L);
Print_List(L);
return 0;
}
void Create_List(SqList &A)
{
//L=(SqList *)malloc(sizeof(SqList));
int n=0;
printf("请输入要创建的学生个数:\n");
scanf("%d",&n);
A.length=n;
printf("请依次输入学生的年龄,姓名,学号,分数:\n");
for(int i=0;i<n;i++)
{
scanf("%d%s%s%f",&A.data[i].age,A.data[i].name,A.data[i].No,&A.data[i].score);
}
}
int Insert_List(SqList *L,Student &e,int i)
{
Student *p,*q;
if(i<1
[解决办法]
i>L->length+1)
return 0;
q=&L->data[i-1];
for(p=&L->data[L->length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return 1;
}
int Delete_List(SqList *L,int i)
{
if(Empty_List(*L)==1)
{
return 0;
}
for(int j=i-1;j<=L->length-2;j++)
L->data[j]=L->data[j+1];
return 1;
}
int Empty_List(SqList L)
{
if(L.length==0)
return 1;
else
return 0;
}
void Print_List(SqList L)
{
int j=0;
printf("年龄 姓名 学号 分数\n");
for(j=0;j<=L.length-1;j++)
{
printf("%d %s %s %f\n",L.data[j].age,L.data[j].name,L.data[j].No,L.data[j].score);
}
}