题目1023:EXCEL排序---------Case后面的是count,不是C

#include<stdio.h>
#include<algorithm>
#include<cstring>
using namespace std;

struct student
{
    char num[10];
    char name[10];
    int grade;
}s[100002];
int cmp1(student s1,student s2)//case 1 按照学号递增 
{
    return strcmp(s1.num,s2.num)<0; 
}
int cmp2(student s1,student s2)//case 2 姓名的非递减字典
{
    if(strcmp(s1.name,s2.name)==0) return strcmp(s1.num,s2.num)<0; 
    else return strcmp(s1.name,s2.name)<0;
} 
int cmp3(student s1,student s2)//case3
{
    if(s1.grade==s2.grade) return strcmp(s1.num,s2.num)<0; 
    else return s1.grade<s2.grade;
} 
int main()
{
    int N,C;
    int count=0;
    while(scanf("%d %d",&N,&C)!=EOF)
    {
        count++;
        if(N==0 && C==0) return 0;
        int i;
        for(i=0;i<N;i++)
        scanf("%s %s %d",s[i].num,s[i].name,&s[i].grade);
        switch(C)
        {
           case 1:{
               sort(s,s+N,cmp1);
               break;
           }
           case 2:{
               sort(s,s+N,cmp2);
               break;
           }
           case 3:{
               sort(s,s+N,cmp3);
               break;
           } 
        }
        printf("Case %d:
",count);
        for(i=0;i<N;i++)
        printf("%s %s %d
",s[i].num,s[i].name,s[i].grade);    
    }
    return 0;
}
原文地址:https://www.cnblogs.com/jianrenguo/p/6555676.html