求解!!!

//我想采用冒泡排序升序找出前五个,有大佬帮我看看问题出在哪么,结果不对
#include<stdio.h>
void bubblesort(int arr[], int sz) {
    for (int j = 0; j < sz - 1; j++) {
        int flag = 1; //假设已经是有序的数组
        for (int k = 0; k < sz - 1 - j; k++) {
            if (arr[k] < arr[k + 1]) {
                int t = arr[k];
                arr[k] = arr[k + 1];
                arr[k + 1] = t;
            }
        }
        if (flag == 1) {
            break;
        }
    }
}
int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d ", &arr[i]);
    }
    //采用冒泡排序
    int sz = sizeof(arr) / sizeof(arr[0]);
    bubblesort(arr,  sz);
    for (int k = 0; k < 5; k++) {
        printf("%d ", arr[k]);
    }
}

#考研#
全部评论
啊我已经发现了我把flag=0写成了1呜呜呜
点赞 回复 分享
发布于 2022-06-15 16:11

相关推荐

评论
点赞
收藏
分享

创作者周榜

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