简单的学生排序系统

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

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

/*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;
}




//程序整体分三步
//存储
//操作
//输出


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值