#include "stdio.h"#include "string.h"#define MaxSize 100#define OverFlow -1#define OK 1#define Error -1typedef struct{ char Number[15]; char Name[15]; char Score[15];}ElemType;typedef struct{ ElemType Student[MaxSize]; int Length;}SeqList;typedef struct{ ElemType Student[MaxSize+1]; int Length;}SorList;void Init_SeqList(SeqList *L_pointer){ L_pointer->Length=0;}void Show_SeqList(SeqList *L_pointer){ int j; printf("\n"); if (L_pointer->Length==0) printf("空表!\n"); else for(j=0;jLength;j++) printf("%s %s %s\n",L_pointer->Student[j].Number,L_pointer->Student[j].Name,L_pointer->Student[j].Score);}int Insert_Last(SeqList *L_pointer,ElemType x){ if(L_pointer->Length==MaxSize) { printf("表满"); return OverFlow; } else { strcpy(L_pointer->Student[L_pointer->Length].Number,x.Number); strcpy(L_pointer->Student[L_pointer->Length].Name,x.Name); strcpy(L_pointer->Student[L_pointer->Length].Score,x.Score); L_pointer->Length++; return OK; }}void InsertSort (SorList *L_pointer){ int i,j; for(i=2;i<=L_pointer->Length;i++){ if (L_pointer->Student[i].Score>L_pointer->Student[i-1].Score){ strcpy(L_pointer->Student[0].Number,L_pointer->Student[i].Number); strcpy(L_pointer->Student[0].Name,L_pointer->Student[i].Name); strcpy(L_pointer->Student[0].Score,L_pointer->Student[i].Score); j=i-1; do { strcpy(L_pointer->Student[j+1].Number,L_pointer->Student[j].Number); strcpy(L_pointer->Student[j+1].Name,L_pointer->Student[j].Name); strcpy(L_pointer->Student[j+1].Score,L_pointer->Student[j].Score); j--; } while(L_pointer->Student[0].Score>L_pointer->Student[j].Score); strcpy(L_pointer->Student[j+1].Number,L_pointer->Student[0].Number); strcpy(L_pointer->Student[j+1].Name,L_pointer->Student[0].Name); strcpy(L_pointer->Student[j+1].Score,L_pointer->Student[0].Score); } } printf("成绩从高到低排序后的学生成绩信息为:\n\n"); for(i=1;iLength;i++) { printf("学号:%s\t姓名:%s\t成绩:%s\n",L_pointer->Student[i].Number,L_pointer->Student[i].Name,L_pointer->Student[i].Score); }}void main(){ int i=0; ElemType y; SeqList x,*Lx_pointer; SorList z,*Lz_pointer; Lx_pointer=&x; Lz_pointer=&z; Init_SeqList(Lx_pointer); do{ printf("\n"); printf("1-插入学生信息,2-排序学生成绩,3-退出\n"); scanf("%d",&i); switch(i) { case 1: printf("插入学生信息\n"); printf("输入学生学号:"); scanf("%s",y.Number); printf("输入学生姓名:"); scanf("%s",y.Name); printf("输入学生成绩:"); scanf("%s",y.Score); Show_SeqList(Lx_pointer); break; case 2: for(i=0;iLength;i++) { strcpy(Lz_pointer->Student[i+1].Number,Lx_pointer->Student[i].Number); strcpy(Lz_pointer->Student[i+1].Name,Lx_pointer->Student[i].Name); strcpy(Lz_pointer->Student[i+1].Score,Lx_pointer->Student[i].Score); } Lz_pointer->Length=Lx_pointer->Length; InsertSort(Lz_pointer); break; case 3:break; } } while(i!=0);}
调试下,看看出什么问题