题目描述
在主函数中输入 n (n≤10)个不等长的字符串,用另一函数对它们排序,然后在主函数输出这 n 个已排好序的字符串。
输入
n 和 n个不等长字符串。
输出
n个已排好序的字符串。
输入输出样例
样例输入 #1
5
abcd
12345678
abc
123456
ab123
样例输出 #1
123456
12345678
ab123
abc
abcd
提示
主函数已给定如下,提交时不需要包含下述主函数。
C:
int main()
{
void sort(char *[], int n);
int i;
char str[10][80];
char *p[10];
int n;
scanf("%d", &n);
for (i= 0; i < n; i++)
scanf("%s", str[i]);
for (i= 0; i<n; i++)
p[i]= str[i];
sort(p, n);
for (i= 0; i < n; i++)
printf("%s\n", p[i]);
return 0;
}
参考解答:
#include<stdio.h>
void sort(char* p[], int n)
{
int i, j;
char s[500];
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - i - 1; j++)
if (strcmp(p[j], p[j + 1]) >= 0)
{
strcpy(s, p[j]);
strcpy(p[j], p[j + 1]);
strcpy(p[j + 1], s);
}
}
int main()
{
void sort(char *[], int n);
int i;
char str[10][80];
char *p[10];
int n;
scanf("%d", &n);
for (i= 0; i < n; i++)
scanf("%s", str[i]);
for (i= 0; i<n; i++)
p[i]= str[i];
sort(p, n);
for (i= 0; i < n; i++)
printf("%s\n", p[i]);
return 0;
}