游客 Signup | Login
中文 | En

1254 - C语言10.24

在main函数中输入10个等长的字符串,另外写一个函数对它们按字典序从小到大排序。并在main函数中输出这10个已经排好序的字符串。

Input

共有10行,每行一个字符串。输入保证每行的字符串长度相等且不超过100个字符。但是请注意字符串中有可能包含空格。

Output

与输入格式相同,每行输出一个排好序之后的字符串。

请注意行尾输出换行。

Examples

Input

String D
String E
string A
String C
string G
string J
String I
String H
string F
String B

Output

String B
String C
String D
String E
String H
String I
string A
string F
string G
string J

Solution C

#include<stdio.h>
#include<string.h>
int main()
{	
	char a[10][120],e[120];
	int i,j;
	for(i=0;i<10;i++)
	{
	gets(a[i]);
		
	}

	for(i=0;i<10;i++)
	{	
		
		for(j=i;j<10;j++)
		{
			if( strcmp(a[i],a[j]) > 0 )
			{strcpy(e,a[i]);
				strcpy(a[i],a[j]);
				strcpy(a[j],e);
			}
		}

	}
	for(i=0;i<10;i++)
	{
		puts(a[i]);
		
	}


	return 0;
}

Solution C++

#include <stdio.h>
#include <string.h>
int main() {
	void sort(char str[][101], int n, int length);
	char str[10][101], ch;
	int i, j, length;
	for (i = 0;i < 10;i++) {
		j = 0;
		while ((ch = getchar()) != '\n') {
			str[i][j] = ch;
			j++;
		}
		length = j;
		str[i][length] = '\0';
	}
	sort(str, 10, length);
	for (i = 0;i < 10;i++)
		printf("%s\n", str[i]);
	return 0;
}
/* 字符串排序函数 */
void sort(char str[][101], int n, int length) {
	int i, j, current;
	char temp;
	for (i = 0;i < n - 1;i++) {
		/* 寻找剩余的最小的字符串 */
		current = i;
		for (j = i + 1;j < n;j++)
			if (strcmp(str[j], str[current]) < 0)
				current = j;
		/* 将剩余的最小字符串替换到最靠前的位置 */
		for (j = 0;j < length;j++) {
			temp = str[i][j];
			str[i][j] = str[current][j];
			str[current][j] = temp;
		}
	}
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题