有一个已经排好序的数组{1.4.6.9.13.16.19.28.40.100},要求输入一个数后,按原来顺序的规律将它插入数组中。用c语言编写程序
时间: 2024-10-15 21:29:01 浏览: 28
在C语言中,你可以通过遍历数组找到合适的位置并插入新元素来实现这个功能。这里是一个简单的示例程序,假设数组中的数字都是正整数,并且按照升序排列:
```c
#include <stdio.h>
// 插入函数,将 num 插入到 arr 数组的正确位置
int insertSorted(int arr[], int n, int num) {
for (int i = 0; i < n; i++) {
if (arr[i] > num) {
// 找到第一个大于num的位置,然后将num插入
int j = i;
while (j + 1 < n && arr[j + 1] < num) {
arr[j + 1] = arr[j];
j++;
}
arr[j] = num; // 将num放在找到的位置
return i + 1; // 返回新的数组长度
}
}
// 如果所有元素都小于等于num,直接添加到末尾
arr[n] = num;
return n + 1;
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 4, 6, 9, 13, 16, 19, 28, 40, 100};
int n = sizeof(arr) / sizeof(arr[0]);
int input;
printf("请输入一个数字:");
scanf("%d", &input);
n = insertSorted(arr, n, input);
printf("插入数字后的数组:");
printArray(arr, n);
return 0;
}
```
当你运行这个程序并输入一个数字后,它会保持数组原有的排序,同时将新数字插入到正确的位置。
阅读全文