题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student{
char name[100];
int grade;
}stu;
int main()
{
int n;
int sq;
while(scanf("%d%d",&n,&sq)!=EOF)
{
int i;
stu s[200];
stu temp[200];//定义一个结构体数组,一共200个结构体
for(i=0;i<n;i++)
{
scanf("%s %d",s[i].name,&s[i].grade);
}
//从大到小输入temp,再顺序输出
if(sq==0)
{
int j;
int Index=0;
for(i=100;i>=0;i--)
{
for(j=0;j<n;j++)
{
if(s[j].grade==i)
{
//printf("i=%d j=%d\n",i,j);
temp[Index++]=s[j];
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d\n",temp[i].name,temp[i].grade);
}
}
else if (sq==1)
{
int j;
int Index=0;
for(i=0;i<=100;i++)
{
for(j=0;j<n;j++)
{
if(s[j].grade==i)
{
//printf("i=%d j=%d\n",i,j);
temp[Index++]=s[j];
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d\n",temp[i].name,temp[i].grade);
}
}
}
return 0;
}
#include<stdlib.h>
#include<string.h>
typedef struct student{
char name[100];
int grade;
}stu;
int main()
{
int n;
int sq;
while(scanf("%d%d",&n,&sq)!=EOF)
{
int i;
stu s[200];
stu temp[200];//定义一个结构体数组,一共200个结构体
for(i=0;i<n;i++)
{
scanf("%s %d",s[i].name,&s[i].grade);
}
//从大到小输入temp,再顺序输出
if(sq==0)
{
int j;
int Index=0;
for(i=100;i>=0;i--)
{
for(j=0;j<n;j++)
{
if(s[j].grade==i)
{
//printf("i=%d j=%d\n",i,j);
temp[Index++]=s[j];
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d\n",temp[i].name,temp[i].grade);
}
}
else if (sq==1)
{
int j;
int Index=0;
for(i=0;i<=100;i++)
{
for(j=0;j<n;j++)
{
if(s[j].grade==i)
{
//printf("i=%d j=%d\n",i,j);
temp[Index++]=s[j];
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d\n",temp[i].name,temp[i].grade);
}
}
}
return 0;
}