/*显示全班成绩表*/ void xianshi() { int i; /*输出表头*/ biaotou(); /*循环输出50个同学的成绩,每输出15个同学屏幕暂停,按任意键继续*/ for(i=0;i<NUM;i++) { printf(" 学号 : %d\n",s[i].xh); printf(" 姓名 : %s\n",s[i].xm); printf(" C语言 : %f\n",s[i].c); printf("网络操作系统: %f\n",s[i].wc); printf(" CAD : %f\n",s[i].cad); printf(" 平均分 : %f\n",s[i].ave); printf(" 名次 : %d\n",s[i].mc); printf("---------------------------------------------------------\n"); if( !(i/14) ) getch();
} printf("\n\t按任意键继续...."); getchar(); } 这样看起来有点乱,我认为横向输出更好!
/*录入各同学的成绩*/ void luru() { int i,j,sum; struct student tmp; clrscr(); printf("\n\t温馨提示:每个同学的数据都要输入在一行上,并每项都要输入!"); printf("\n\t准备输入几个同学成绩?:"); scanf("%d",&sum); printf("\t《简单的学生成绩管理系统》\n\n"); printf("\t 03计算机3班期中考试成绩\n"); for(i=1;i<=30;i++) printf("="); printf("\n"); printf("学号 姓 名 C语言 网操 CAD\n"); /*输入sum个同学的成绩*/ for(i=1;i<=sum;i++) { scanf("%d %s %f %f %f",&tmp.xh,tmp.xm,&tmp.c,&tmp.wc,&tmp.cad); s[i]=tmp; } }
可你排序的时候下标是从0开始的!