成绩排序

来源:互联网 发布:美妆购物软件 编辑:程序博客网 时间:2024/06/02 14:43
 查找和排序
题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
      都按先录入排列在前的规则处理。
   例示:
   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;}


0 0