请问这个代码该怎么写?

题目描述
2014 年 8 月在南京举行第 2 届奥林匹克青年运动会,每个国家在报名参加时需要填写国家名字,参加的人数,所属的洲,同时系统会自动生成一个报名序号,在开幕式的运动员出场顺序上,按照国家名字的英文字母顺序来出场。请编写一个计算机程序实现国家名字的排序(升序),东道主中国(China)在最后一个出场

输入描述
多组输入,其中每组输入的第一行表示参加国家数 n(占一行),下面 n 行是国家的报名信息(序号、国家名称、参加人数、所属大洲)

输出描述
按国家名字的字母序输出信息(东道主国家名字最后输出)。

样例输入
5

1 France 123 Europe

2 Russia 254 Europe

3 Japan 235 Asia

4 Germany 185 Europe

5 China 560 Asia

样例输出
1 France 123 Europe

4 Germany 185 Europe

3 Japan 235 Asia

2 Russia 254 Europe

5 China 560 Asia

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
//#include "fun.h"
#define MAX_ORDER 20
/* 默认输入:中国最后一个输入
*             每个国家名字首字母都是大写开头
*
*/
struct Information{
    int Order;       //序号
    char Name[16];    //国家
    int Number;    //人数
    char Location[16];    //位置
};
int main()
{
    int i,j,n;
    struct Information Name_Information[MAX_ORDER];
    struct Information temp;
    printf("Iuput order number:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d %s %d %s",&Name_Information[i].Order,&Name_Information[i].Name,&Name_Information[i].Number,&Name_Information[i].Location);
    for(i=0;i<n-1;i++)
    {
     for(j=i;j<n-1;j++)
     {
      if(strcmp(Name_Information[i].Name,Name_Information[j].Name)>0)
        {
            temp =  Name_Information[i];
            Name_Information[i] = Name_Information[j];
            Name_Information[j] = temp;
        }
     }
    }
    printf("OUT:\r\n")
    for(i=0;i<n;i++)
       printf("%d %s %d %s\r\n",Name_Information[i].Order,Name_Information[i].Name,Name_Information[i].Number,Name_Information[i].Location);
}