洛谷p1012(c语言)

#include
#include
#include


int compare(char *a, char *b) {
    char s1[21];
    char s2[21];
    sprintf(s1, "%s%s", a, b);
    sprintf(s2, "%s%s", b, a);
    return strcmp(s1, s2);
}

void maopao(char arr[][20], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (compare(arr[j], arr[j + 1]) < 0) {
                char temp[20];
                strcpy(temp, arr[j]);
                strcpy(arr[j], arr[j + 1]);
                strcpy(arr[j + 1], temp);
            }
        }
    }
}

int main() {
    int n;
    scanf("%d", &n);
    char array[20][20];
    for (int i = 0; i < n; i++) {
        scanf("%s", array[i]);
    }
    char answer[1000] = "";
    maopao(array, n);

    for (int i = 0; i < n; i++) {
        strcat(answer, array[i]);
    }

    printf("%s\n", answer);

    return 0;
}
 

你可能感兴趣的:(c语言,算法,数据结构)