1254 - C语言10.24

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

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

题目输入

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

题目输出

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

请注意行尾输出换行。

输入/输出样例

输入格式

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

输出格式

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

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;
}

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;
		}
	}
}

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) {
	   String strs[] = new String[10] ;
	   for (int i = 0; i < 10; i++) {
		  strs[i] = s.nextLine() ;
	   }
	   
	   Arrays.sort(strs);
	   
	   for (String string : strs) {
		  System.out.println(string);
	   }
   }
}