1616 - 姓名排序
存储一组姓名,如Apple,Tom,Green,Jack 要求按照字典序排序并显示。
Input
输入第一行为样例数m,对于每个样例,第一行为人数n,接下来有n个姓名,n不超过10,每个名字长度不超过20。
Output
对于每个样例输出排序后的结果,每行一个姓名。
Examples
Input
1 4 Apple Tom Green Jack
Output
Apple Green Jack Tom
Solution C
#include <stdio.h> #include <string.h> void main() { int m,n,i,j; char name[100][100]; char temp[100]; scanf("%d",&m); while (m--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",&name[i]); for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) if(strcmp(name[j],name[j+1])>0) { strcpy(temp,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],temp); } } for (i=0;i<n;i++) printf("%s\n",name[i]); } }
Solution C++
#include <iostream> #include <string> #include <vector> #include <algorithm> #include <cstdio> using namespace std; int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int t; cin >> t; while (t--) { int n; vector<string> v_string; string s; cin >> n; while(n--) { cin >> s; v_string.push_back(s); } sort(v_string.begin(),v_string.end()); for(int i=0; i<v_string.size(); i++) cout<<v_string[i]<<endl; } return 0; }