自定义函数实现对一个有序数组进行插入操作,保证插入后的数组依然有序。主函数调用。 要求:1)共自定义2个函数,分别对数组进行插入和输出。 2)数组、待插数据在主函数中定义和赋值。
时间: 2024-03-08 18:51:23 浏览: 137
好的,我可以帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 插入有序数组
void insert(int arr[], int n, int x)
{
int i = n - 1;
while (i >= 0 && arr[i] > x)
{
arr[i + 1] = arr[i];
i--;
}
arr[i + 1] = x;
}
// 输出数组元素
void printArray(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[MAX_SIZE] = {1, 3, 4, 6, 8, 9};
int n = 6; // 数组元素个数
int x = 5; // 待插入的元素
printf("插入前数组元素:\n");
printArray(arr, n);
insert(arr, n, x);
printf("插入后数组元素:\n");
printArray(arr, n + 1);
return 0;
}
```
解释一下代码实现:
1. 定义了两个函数 `insert` 和 `printArray`,分别用于对有序数组进行插入操作和输出数组元素。
2. 在 `main` 函数中定义了一个有序数组 `arr`,元素个数为 `n`,待插入的元素为 `x`。
3. 调用 `printArray` 函数输出插入前的数组元素。
4. 调用 `insert` 函数对数组进行插入操作。
5. 调用 `printArray` 函数输出插入后的数组元素。
希望能够帮到你!
阅读全文