学生记录由学号、姓名、成绩组成(学号、成绩都为整数),使用结构体数组

2020-06-29 教育 167阅读
#include
#include
#include
struct
student
{
char
name[50];
int
num;
int
grades;
};
void
main()
{
int
i=0,j,k,exchang;struct
student
exchange;
struct
student
*stu;
stu=(struct
student
*)malloc(100*sizeof(struct
student));
printf("please
input
the
imformation
of
students:\n");
scanf("%s",stu[i].name);
for(;strcmp(stu[i].name,"null");scanf("%s",stu[i].name))
{
scanf("%d",&stu[i].num);
scanf("%d",&stu[i].grades);
i++;
}
i--;
for(k=i;k>0;k--)
for(j=i;j>i-k;j--)
{if(stu[j].num>stu[j-1].num)
{strcpy(exchange.name,stu[j].name);
strcpy(stu[j].name,stu[j-1].name);
strcpy(stu[j-1].name,exchange.name);
exchang=stu[j-1].num;
stu[j-1].num=stu[j].num;
stu[j].num=exchang;
exchang=stu[j-1].grades;
stu[j-1].grades=stu[j].grades;
stu[j].grades=exchang;
}}
for(j=0;j<=i;j++)
printf("name=%s,num=%d,grades=%d\n",stu[j].name,stu[j].num,stu[j].grades);
}
输入时,先输姓名再输学号再输成绩
当姓名输入为null时结束,开始排序并输出,按学号由大至小输出
vc6.0编译通过
楼上没有排序。。汗。。。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com