问题 3167 --学号排序(程序填空)

3167: 学号排序(程序填空)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 410  解决: 328
[提交][状态][命题人:]

题目描述

输入一个正整数n(n<20),表示接下来有n个学生,依次输入学号姓名(空格隔开)。排序规则如下:学号为偶数的为第一行,学号为奇数的为第二行,每行数据按学号从小到大排。

#include <iostream>  
#include <algorithm>
#include <cstdio>
using namespace std;
struct student    
{
   int a;         
   char b[255];  
};
bool cmp(student a,student b)
{
  ________(1)_________;
}
int main()
{
   int n, x=0, y=0;
   student a[55], b[55], c[55]; 
   cin>>n;                      
   for(int i=0; i<n; i++)
   {
      cin>>a[i].a>>a[i].b;     
      if( _______(2)________ )   
      {
         
         b[x]=a[i];  
         x++;        
      } 
     else
     {
        c[y]=a[i];  
        y++;        
      }
   }
   sort(b, b+x, cmp);  
   ________(3)________               
   for(int i=0; i<x; i++)
   {
      cout<<b[i].a<<" "<<b[i].b<<" ";  
   }
   cout<<endl; 
   for(int i=0; i<y; i++)
   {
      cout<<c[i].a<<" "<<c[i].b<<" ";  
   }
   cout<<endl; 
}

输入

第一行输入一个整数n(0<n<20),表示学生数量。以下n行数据每行为学号(100~999)和姓名(空格隔开)。

输出

按规则排序输出。(若全为奇数则将第一行空出)。

样例输入
Copy
6
167 ab
186 ac
296 ad
190 ae
683 af
120 ag
样例输出
Copy
120 ag 186 ac 190 ae 296 ad
167 ab 683 af

提示

每个人的姓名中间没有空格。

来源

[提交][状态]