用C语言写一个程序在一个数组中插入一个数后该数组仍有序
时间: 2023-05-26 13:04:29 浏览: 65
#include <stdio.h>
int main() {
int arr[100], n, i, j, num;
//输入当前数组长度
printf("输入数组长度:");
scanf("%d", &n);
//输入数组元素
printf("输入数组元素:");
for(i=0; i<n; i++) {
scanf("%d", &arr[i]);
}
//输入要插入的数
printf("输入要插入的数:");
scanf("%d", &num);
//寻找要插入的位置
for(i=0; i<n; i++) {
if(num<=arr[i]) {
//将数组后面的元素全部后移
for(j=n-1; j>=i; j--) {
arr[j+1] = arr[j];
}
arr[i] = num;
n++; //数组长度加1
break;
}
}
//输出新数组
printf("新数组为:");
for(i=0; i<n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
相关问题
用c语言编写:在一个有序数组中插入一个数并排列
在一个有序数组中插入一个数并排列可以使用以下代码实现:
```c
#include <stdio.h>
void insert(int arr[], int size, int num) {
int i;
for (i = size - 1; i >= 0 && arr[i] > num; i--) {
arr[i + 1] = arr[i];
}
arr[i + 1] = num;
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int num = 4;
insert(arr, size, num);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该代码会在有序数组中插入一个数并排列。
c语言有序数组中插入若干数,每插入一个数都要保持有序
可以使用插入排序的思想,将每个要插入的数插入到有序数组中。具体步骤如下:
1. 定义一个有序数组,并初始化。
2. 定义需要插入的数,从用户输入或其他途径获取。
3. 从数组的最后一个元素开始向前遍历,找到第一个比插入数小的元素的位置。
4. 将插入数插入到该位置,其余元素向后移动一个位置。
5. 重复步骤2-4,直到所有数插入完成。
示例代码如下:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 插入排序
void insertSort(int arr[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
}
int main() {
int arr[MAX_SIZE];
int n, i, j, temp;
// 初始化有序数组
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入有序数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 插入若干数并保持有序
printf("请输入要插入的数的个数:");
scanf("%d", &j);
for (i = 0; i < j; i++) {
printf("请输入要插入的数:");
scanf("%d", &temp);
arr[n++] = temp; // 将插入数插入到数组末尾
insertSort(arr, n); // 插入排序
}
// 输出结果
printf("插入后的有序数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```