1616 - 姓名排序
时间限制 : 1 秒
内存限制 : 32 MB
存储一组姓名,如Apple,Tom,Green,Jack 要求按照字典序排序并显示。
题目输入
输入第一行为样例数m,对于每个样例,第一行为人数n,接下来有n个姓名,n不超过10,每个名字长度不超过20。
题目输出
对于每个样例输出排序后的结果,每行一个姓名。
输入/输出样例
输入格式
1 4 Apple Tom Green Jack
输出格式
Apple Green Jack Tom
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]); } }
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; }
Java解答
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in) ; int n = s.nextInt() ; for (int i = 0; i < n; i++) { int m = s.nextInt() ; String strs[] = new String[m] ; for (int j = 0; j < strs.length; j++) { strs[j] = s.next() ; } Arrays.sort(strs) ; for (int j = 0; j < strs.length; j++) { System.out.println(strs[j]); } } } }