2048:【例5.18】串排序
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 14817 通过数: 7208
【题目描述】
对给定的n(1≤n≤20)个国家名(国家名字长度不超过20),按其字母的顺序输出。
【输入】
第一行为国家的个数n;
以下n行为国家的名字。
【输出】
n行,排序后的国名。
【输入样例】
3
Korea
China
Japan
【输出样例】
China
Japan
Korea
#include
using namespace std;
string s[21];
bool cmp(string A,string B)
{
return A
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>s[i];
}
sort(s,s+n,cmp);
for(int i=1;i<=n;++i)
{
cout<
}
}
为什么输出错误?从i=1开始和i=0开始没有什么区别吧?
应该是i=0;i
#include<bits/stdc++.h>
using namespace std;
string s[21];
bool cmp(string A,string B)
{
return A<B;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>s[i];
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;++i)
{
cout<<s[i]<<endl;
}
}
既然字符串从下标1开始存储,那你sort的时候就应该从s+1到s+n+1啊