题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。
示例1
输入
9 cap to cat card two too up boat boot
输出
boat boot cap card cat to too two up
解题思路
字符串排序
1 排序算法
排序算法有很多,本例采用最基础的简单选择排序。
2 字符串比较函数
本题直接采用c语言提供的strcmp函数来实现两个字符串的比较,当然也可以自己写。比如这样
int strcmp(const char* s1, const char* s2)
{
while ( *s1 == *s2 && *s1 != '\0')
{
s1++;
s2++;
}
return *s1 - *s2;
} 3 c语言实现
#include <stdio.h>
#include <string.h>
int main()
{
//1. input
int i, j,num;
char str[1000][100],temp[100];
scanf("%d",&num);
for (i = 0; i < num; i++) {
//gets(str[i]);
scanf("%s[^\n]",str[i]);
}
//2.sort
for (i=0 ; i < num-1; ++i) {
for (j = i+1; j < num ; ++j) {
if (strcmp(str[i], str[j]) > 0) {
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
//3.print
//printf("***********************\n");
for (i = 0; i < num ; i++) {
puts(str[i]);
}
return 0;
}

京公网安备 11010502036488号