1243 - C语言10.13
时间限制 : 1 秒
内存限制 : 32 MB
将若干字符串按照字母顺序(由小到大)输出。这里的字母顺序指字符串对应字符的ascii码的大小由小到大。
题目输入
第一行有一个整数n,表示以下有n行,每行一个字符串。请注意每一行的字符串可能包含空格。保证n不超过20,每一个字符串的长度不超过20。
题目输出
共有n行,即按照字母顺序排好序的字符串序列。
请注意行尾输出换行。
输入/输出样例
输入格式
5 Follow me BASIC Great Wall FORTRAN Computer design
输出格式
BASIC Computer design FORTRAN Follow me Great Wall
C语言解答
#include <stdio.h> #include <string.h> int main() { char c1[25][25],c2[25]; int n; int i,j; scanf("%d\n",&n); for(i=0;i<n;i++) gets(c1[i]); for(i=1;i<n;i++) for(j=0;j<n-i;j++) if(strcmp(c1[j],c1[j+1])>0) { strcpy(c2,c1[j]); strcpy(c1[j],c1[j+1]); strcpy(c1[j+1],c2); } for(i=0;i<n;i++) puts(c1[i]); return 0; //while(1); }
C++解答
#include <stdio.h> #include <string.h> int main() { void sort(char *name[], int n); char * name[20]; char names[20][20]; char ch; int n, i, j; scanf("%d", &n); /* 处理第一行多余的空格和回车符 */ while ((ch = getchar()) != '\n') {} for (i = 0;i < n;i++) { /* 读入每一行的字符串 */ j = 0; while ((ch = getchar()) != '\n') { names[i][j] = ch; j++; } /* 在字符串末尾加上0,标记字符串结束 */ names[i][j] = '\0'; /* 给指针数组赋值,以方便进行排序 */ name[i] = names[i]; } sort(name, n); for (i = 0;i < n;i++) printf("%s\n", name[i]); return 0; } /* 选择排序 */ void sort(char *name[], int n) { char * temp; int i, j, k; for (i = 0;i < n - 1;i++) { k = i; for (j = i + 1;j < n;j++) if (strcmp(name[k], name[j]) > 0) k = j; if (k != i) { temp = name[i]; name[i] = name[k]; name[k] = temp; } } }
Java解答
import java.util.Arrays; import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int num = s.nextInt() ; String strs[] = new String[num] ; s.nextLine() ; for (int i = 0; i < num; i++) { strs[i] = s.nextLine() ; } Arrays.sort(strs); for (String string : strs) { System.out.println(string) ; } } }
Python解答
a = [] for i in range(input()): a.append(raw_input()) for i in sorted(a): print i