c语言

c语言输入n个数怎么从大到小排序

小亿
306
2024-01-18 16:03:18
栏目: 编程语言

可以使用冒泡排序算法来实现从大到小排序。

冒泡排序的基本思想是,从第一个元素开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置,这样一趟下来,最大的元素就会被交换到最后的位置。然后再从第一个元素开始,进行第二次比较,以此类推,直到所有元素都排好序。

以下是使用冒泡排序算法实现从大到小排序的示例代码:

#include <stdio.h>

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                // 交换两个元素的位置
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    int n;
    printf("请输入需要排序的数字个数:");
    scanf("%d", &n);

    int arr[n];
    printf("请输入%d个数字:", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    bubbleSort(arr, n);

    printf("从大到小排序后的结果为:");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

这段代码首先获取输入的数字个数n,然后创建一个大小为n的数组arr,用于存储输入的数字。接下来,使用for循环依次将n个数字保存到数组中。然后调用bubbleSort函数对数组进行排序。最后,使用for循环输出排序后的结果。

注意:在使用冒泡排序算法时,数组元素的类型应为可比较的类型,例如整数、浮点数等,而不是指针类型、结构体类型等。

0
看了该问题的人还看了