本关任务:有一个已经排好序的整型数组{1,4,6,9,11,25,31,46,83,100}。现输入一个数,要求按序将它插入数组中,并依序输出新数组。(注意,数组输出时每个数间隔一个空格)特别当输入的数小于原数组中所有的数时,则插在最前面。y用c语言编写
时间: 2024-11-30 14:19:45 浏览: 16
白色大气风格的建筑商业网站模板下载.rar
在C语言中,你可以通过遍历数组找到合适的位置并将新元素插入的方式来实现这个功能。这里是一个简单的示例程序,假设我们已经有了一个名为`insert_and_sort`的函数:
```c
#include <stdio.h>
// 插入并保持排序的函数
void insert_and_sort(int arr[], int n, int num) {
if (num < arr[0]) { // 如果新数小于最小值,插入开头
arr[0] = num;
} else {
for (int i = 0; i < n; i++) { // 找到合适位置并插入
if (arr[i] > num) {
memmove(&arr[i+1], &arr[i], sizeof(arr[i])); // 移动元素
arr[i] = num;
break; // 数组已排序,所以停止查找
}
}
}
// 输出结果,每个数之间隔一个空格
printf("%d ", arr[0]);
for (int i = 1; i < n + 1; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 4, 6, 9, 11, 25, 31, 46, 83, 100};
int n = sizeof(arr) / sizeof(arr[0]);
int num = 7; // 输入的新数字
insert_and_sort(arr, n, num);
return 0;
}
```
当你运行这个程序,给定 `num = 7`,输出将会是`1 4 6 7 9 11 25 31 46 83 100`。
阅读全文