题解 | 排序

排序

https://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309

#include <stdio.h>
#include <stdlib.h>
#define BUFFER_LENGTH (1000)

int compare_asc (const void* a, const void*b) {
    return (*(int*)a - *(int*)b);
}

int compare_desc (const void* a, const void*b) {
    return (*(int*)b - *(int*)a);
}

int main() {
    int length;
    scanf("%d", &length);

    int buffer[length];
    for (int i=0; i<length; i++) {
        scanf("%d", buffer+i);
    }
    
    int order;
    scanf("%d", &order);

    if (order == 0) {
        qsort(buffer, length, sizeof(int), compare_asc);
    } else if (order == 1) {
        qsort(buffer, length, sizeof(int), compare_desc);
    }
    
    for (int i=0; i<length; i++) {
        printf("%d", buffer[i]);
        if (i == length-1) {
            printf("\n");
        } else {
            printf(" ");
        }
    }

    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务