C语言有序数组插入问题案例

题目描述

将一个数组的元素初始化为有序的,要求输入一个数后 按原来排序的规律将它插入数组中。

例如,数组中的元素为:124451012,输入整数3后, 数组元素变为:1234451012

案例代码

根据题目要求,我们需要编写一个程序,将一个数组的元素初始化为有序的,然后从用户输入获取一个数,并按照原来排序的规律将该数插入到数组中。下面是使用C语言编写的程序:

#include <stdio.h>

int main() {
    int arr[100] = {1, 2, 4, 4, 5, 10, 12};  // 初始化有序数组
    int n, i, j;
    printf("输入一个整数: ");
    scanf("%d", &n);

    // 查找插入位置
    for (i = 0; i < 7; i++) {
        if (n < arr[i]) {
            break;
        }
    }

    // 插入数字
    for (j = 6; j >= i; j--) {
        arr[j + 1] = arr[j];
    }
    arr[i] = n;

    // 输出结果
    for (i = 0; i < 8; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

在上述程序中,我们首先声明了一个长度为100的整型数组arr,并将其初始化为有序数组。然后,通过scanf函数从用户输入获取一个整数n。接着,使用循环查找插入位置,即在数组中找到第一个比输入数字小的位置。如果找不到这样的位置,则说明输入数字是最大的数,应该插入到数组末尾。

一旦插入位置被确定,我们就可以使用另一个循环将该数字插入到数组中。因为插入后数组仍然是有序的,所以我们需要将插入位置后面的所有元素往后移一位,然后将输入数字插入到插入位置的位置。

最后,我们再次使用循环输出数组中的所有元素,以验证插入操作是否成功。

当程序运行时,用户需要输入一个整数,并按回车键确认。然后,程序将在有序数组中查找插入位置,并将输入数字插入到数组中。最后,程序将输出插入后的新数组。

运行截图

图片[1]-C语言有序数组插入问题案例-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享