简单的学生排序系统

来源:互联网 发布:陈巧生香炉官网淘宝网 编辑:程序博客网 时间:2024/05/29 04:51

这个代码我打了一个多小时,学了几天,试着打打,自我感觉还行。明天接着代码之旅

里面用到了我最经学的几个关键字和动态内存分配,我尽可能把我会的都放进去了,毕竟目的不是结果,是过程。

/*2017年7月20日22:06:52写一个简单的学生输入成绩后的排序输出需要输入学生姓名,学号,和成绩以及学生人数*/#include<stdio.h>//#include<string.h>#include<malloc.h>struct students    //定义结构体{int id;float score;char name[20];};typedef struct students STU;void import(STU *parr,int len)   //输入{ int i;for (i=0;i<len;i++){printf("请输入第%d个学生的信息:\n",i+1);printf("学号:");scanf("%d",&parr[i].id);printf("姓名:");scanf("%s",parr[i].name);printf("成绩:");scanf("%f",&parr[i].score);}printf("\n\n");}void export(STU *parr,int len)   //输出{ int i;for (i=0;i<len;i++){printf("第%d名的成绩是:\n",i+1);printf("学号:%d\n",parr[i].id);printf("姓名:%s\n",parr[i].name);printf("学号:%.1f\n\n",parr[i].score);}}void sort(STU *parr,int len)   //排序{int i,j;STU tmp;for (i=0;i<len-1;i++){for (j=0;j<len-i-1;j++){if(parr[j].score<parr[j+1].score)   //冒泡排序{                                   //交换整体tmp       = parr[j];parr[j]   = parr[j+1];parr[j+1] = tmp;}}}}int main(){int len ;STU  *parr;printf("请输入学生的个数:\n");printf("len = ");scanf("%d",&len);parr = (STU *)malloc(len*sizeof(STU));if (parr != NULL){import(parr,len);sort(parr,len);export(parr,len);}else printf("错误:输入的学生过多,无法储存");return 0;}//程序整体分三步//存储//操作//输出