主函数不管它,就前面的有错,内存出现报错Can not be read,虽然不影响程序运行,但有错就是有错,拜托各位高手帮我看看:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max_length 5
typedef struct {
int xh; /*学号*/
char name[10]; /*姓名*/
int c1 , c2 , c3; /*3门课程成绩*/
} Element;
/*在第i个记录的后面插入一个学生的记录算法*/
int Insert_list (int i, Element s[],int *n_pointer){
/*n_pointer存放已输入的最大记录数*/
int j,n;
n=*n_pointer;
if((n==Max_length)||(i<1)||(i>n+1)) return(0);
for (j=n;j>=i;j--) s[j+1]=s[j]; /*移动*/
printf("Input Data for inserting(XH Name C1 C2 C3)\n");
scanf("%d%s%d%d%d",&s[i].xh,s[i].name,&s[i].c1,&s[i].c2,&s[i].c3);
n++;*n_pointer=n;
}
/*删除第i个学生的记录算法*/
int Delete_list (int i,Element s[],int *n_pointer){
int j,n;
n=*n_pointer;
if ((i<1)||(i>n)) return (0);
for (j=i+1;j<=n;j++) { /*移动*/
s[j-1].xh=s[j].xh; strcpy(s[j-1].name,s[j].name);
s[j-1].c1=s[j].c1; s[j-1].c2=s[j].c2; s[j-1].c3=s[j].c3;
}
n--; *n_pointer=n;
}
int Change_list (int i, Element s[] ) {
if ((i<1)|| (i>Max_length +1))return (0);
printf("Input data for updating:\n");
scanf("%d%s%d%d%d",s[i].xh,s[i].name,s[i].c1,s[i].c2,s[i].c3);
return (1);
}
/*查找学号为x算法*/
int Locate_list (Element s[], int n, int x) {
int i;
for (i=1; i<=n; i++) if (s[i].xh==x) return (i);
return (0);
}
/*打印已建立的数据记录,n是记录总数*/
void Print_list(Element s[],int n) {
int i;
if(n>Max_length) return;
printf("XH Name C1 C2 C3 \n");
printf("-----------------\n");
for (i=1;i<=n;i++)
printf("%4d%10s%7d%7d%7d\n",s[i].xh,s[i].name,s[i].c1,s[i].c2,s[i].c3);
}
void main() {
Element s[Max_length];
int i,records=0;
for(i=1;i<=Max_length;i++)Insert_list(i,s,&records);/* 创建线形表*/
Print_list(s,records);
……
}