查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
Tom 70
jack 70
peter 96
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
Tom 70
jack 70
peter 96
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Student
{
char name[10];
int score;
}student;
void sortStudent(student *head,int len)
{
student *s=head;
student *tempStu=(student*)malloc(sizeof(student));
int i,j;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(s[i].score<s[j].score)
{
memcpy(tempStu,&s[i],sizeof(student));
memcpy(&s[i],&s[j],sizeof(student));
memcpy(&s[j],tempStu,sizeof(student));
}
}
}
}
int main()
{
int i,n;
student *stu,*pTemp;
scanf("%d",&n);
stu=(student*)malloc(sizeof(student)*n);
pTemp=stu;
for(i=0;i<n;i++)
{
scanf("%s %d",&pTemp->name,&pTemp->score);
pTemp++;
}
sortStudent(stu,n);
pTemp=stu;
for(i=0;i<n;i++)
{
printf("%s %d\n",pTemp->name,pTemp->score);
pTemp++;
}
return 0;
}