游客 Signup | Login
中文 | En

1255 - C语言10.25

通过次数

0

提交次数

0

Time Limit : 1 秒 Memory Limit : 32 MB

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

Input

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

Output

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

请注意行尾输出换行。

Examples

Input Format

String DDD
String Ee
string AA
String CCCCC
string GG
string jJj
String IiiIII
String h
string fFf
String BBbb

Output Format

String BBbb
String CCCCC
String DDD
String Ee
String IiiIII
String h
string AA
string GG
string fFf
string jJj

Solution C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp(const void* pa,const void* pb)
{
	return strcmp((char*)pa,(char*)pb);
}

void sort(char string[][1000])
{
	qsort(string,10,1000*sizeof(char),cmp);
}

int main ()
{
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	char s[10][1000];
	for(int i=0;i<10;i++)
		gets(s[i]);
	//printf("kddoe\n");
	sort(s);
	for(int i=0;i<10;i++)
		puts(s[i]);
	//printf("dkdoe\n");
}

Solution C++

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