本文最后更新于 385 天前,其中的信息可能已经有所发展或是发生改变。

题目描述

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

输入

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

输出

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

#include<bits/stdc++.h>
using namespace std;
static void ranks(char* p)
{
    int i, j, k = 0;
    char temp[50];
    for (i = 0; i < 9; i++)
    {
        k = i;
        for (j = i + 1; j < 10; j++)
            if (strcmp(p + k * 50, p + j * 50) > 0)
                k = j;
        if (k != i)
        {
            strcpy(temp, p + i * 50);
            strcpy(p + i * 50, p + k * 50);
            strcpy(p + k * 50, temp);
        }
    }
}
int main()
{
    char str[10][50];
    int i;
    char* p = str[0];
    for (i = 0; i < 10; i++)
    {

        gets(str[i]);
    }
    ranks(p);
    for (i = 0; i < 10; i++)
        printf("%s\n", str[i]);

    return 0;
}