问题描述 :
你的程序需要从标准输入设备(通常为键盘)中输入N(1≤N≤10)个学生的信息,每项信息包含该学生的编号、姓名、性别、年龄、成绩共五项,按成绩进行排序,然后按成绩从低到高输出,输入保证没有相同的成绩。
输入说明 :
首先输入一个N(1≤N≤10),代表有几条学生记录,接下来N行每行包含一条学生记录,按照编号、姓名、性别、年龄、成绩的顺序给出,数据项之间以空格分隔,除了这五项之间的4个空格外,无其他空格。所有数据前后没有多余的空行,两个学生的记录之间也没有多余的空行。
输出说明 :
你的程序需要对学生的成绩按升序排序后输出所有学生的信息,每行一个学生的信息,同一个学生的信息之间以一个空格分隔。所有数据前后没有多余的空行,在行首和行尾没有多余的空格。
#include <stdio.h>
#include <string.h>
struct Student
{
int id;
char name[20];
char sex[10];
int age;
int score;
int flag;
};
int main()
{
int N;
scanf("%d",&N);
struct Student stu[10];
for(int i=0;i<N;i++)
{
scanf("%d %s %s %d %d",&stu[i].id,&stu[i].name,&stu[i].sex,
&stu[i].age,&stu[i].score);
stu[i].flag=0;
}
int min=1000,mini=-1;
int k;
for(int j=0;j<N;j++)
{
for(k=0;k<N;k++)
{
if(stu[k].score<min&&stu[k].flag==0){
mini=k;
min=stu[k].score;
}
}
stu[mini].flag=1;
printf("%d %s %s %d %d\n",stu[mini].id,stu[mini].name,stu[mini].sex,
stu[mini].age,stu[mini].score);
mini=-1,min=1000;
}
return 0;
}


被折叠的 条评论
为什么被折叠?



