输入n和n个国家名字,按照字典顺序从小到大排序输出!

输入n和n个国家名字,按照字典顺序从小到大排序输出!
例如:输入2行,第一行n;第二行n个国家名字,空格间隔。
6
Singapore Zambia Itlay China America Romania
在这里给出相应的输出。例如:
America
China
Itlay
Romania
Singapore
Zambia
这是我的代码

#include
#include
int main(){
    int n,i,j;
    char str[10][20],*k;
    scanf("%d",&n);
    for(i=0;iscanf("%s",str[i]);}
    for(i=0;i-1;i++)
        for(j=0;j-1;j++)
            if(strcmp(str[j],str[j+1])>0){strcpy(k,str[j]);
                                       strcpy(str[j],str[j+1]);
                                       strcpy(str[j+1],k);
                                       }
      for(i=0;iprintf("%s\n",str[i]);
    return 0;
}

在Dev-c++ 上的运行结果

img

但是在PTA上会段错误,请赐教

题目有没有约束n的取值范围呢???你定义为10,够用吗?
国家名称,20个字符够用吗?

这就是不好好审题的后果
你不看人家n的取值范围,就随便设置了个10,20,不越界吗