c语言

c语言动态数组怎么赋值并排序输出

小亿
130
2023-12-20 05:37:08
栏目: 编程语言

在C语言中,可以使用动态数组来赋值并排序输出。下面是一个示例代码:

#include <stdio.h>
#include <stdlib.h>

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

int main() {
    int n;  // 数组长度
    int *arr;  // 动态数组指针

    // 输入数组长度
    printf("请输入数组长度:");
    scanf("%d", &n);

    // 为动态数组分配内存空间
    arr = (int*)malloc(n * sizeof(int));

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

    // 排序数组
    qsort(arr, n, sizeof(int), compare);

    // 输出排序后的数组
    printf("排序后的数组:");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 释放内存空间
    free(arr);

    return 0;
}

该代码首先通过malloc函数为动态数组arr分配了nint类型的内存空间。然后使用循环输入数组元素。接下来,使用qsort函数对数组进行排序,compare函数用于比较两个元素的大小。最后,使用循环输出排序后的数组元素。最后,使用free函数释放动态数组所占的内存空间。

0
看了该问题的人还看了