关于学生信息处理小代码

#include #include struct student { int nomber; char name[10]; float yuwen; float shuxue; float tiyu; float sum; }; void paixu(struct student stu[]); void nopass(struct student a[]); void main() { struct student stu[4]; int i,a; char c,d; printf("输入学生信息:\n"); printf("学号 姓名 语文 数学 体育\n"); for(i=0;i<4;i++) scanf("%d%s%f%f%f",&stu[i].nomber,stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].tiyu); for(i=0;i<4;i++) stu[i].sum=stu[i].yuwen+stu[i].shuxue+stu[i].tiyu; printf("学号 姓名 语文 数学 体育 总分\n"); for(i=0;i<4;i++) printf("%d %s %.1f %.1f %.1f %.1f\n",stu[i].nomber,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].tiyu,stu[i].sum); getchar(); do { printf("\n1 修改学生成绩\n2 总成绩排序\n3 显示成绩不及格学生\n4 退出\n"); c=getchar(); getchar(); switch(c) { case '1': printf("修改学生成绩:\n"); printf("输入学号\n"); scanf("%d",&a); getchar(); for(i=0;stu[i].nomber!=a;i++) printf("输入信息\n"); scanf("%s%f%f%f",stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].tiyu); break; case '2': printf("总成绩排序:\n"); printf("1 升序排列\n2 降序排列\n3 返回\n"); d=getchar(); getchar(); paixu(stu); switch(d) { case '1': printf("升序排序:\n"); for(i=3;i>=0;i--) printf("%f\n",stu[i].sum); break; case '2': printf("降序排序:\n"); for(i=0;i<4;i++) printf("%f\n",stu[i].sum); break; default:printf("返回一级菜单\n"); } break; case'3': printf(" 显示成绩不及格学生:\n"); nopass(stu); break; case'4': exit(0); default: break; } }while(1); } void paixu(struct student stu[]) { int j,i,t=0; float f,max; for(i=0;i<3;i++) { max=stu[i].sum; for(j=i+1;j<4;j++) if(stu[j].sum>max) { max=stu[j].sum; t=j; f=stu[i].sum; stu[i].sum=max; stu[t].sum=f; } } } void nopass(struct student stu[]) { int i; for(i=0;i<4;i++) { if(stu[i].yuwen<60||stu[i].shuxue<60||stu[i].tiyu<60) printf("%d %s %.1f %.1f %.1f %.1f\n",stu[i].nomber,stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].tiyu,stu[i].sum); } }
posted @ 2011-09-12 22:56  rui_gao  阅读(399)  评论(0编辑  收藏  举报