C语言编程设有一个已排好降序的数组,现在输入一个数,要求按原来排序的规律将它插入到数组中。
时间: 2023-12-01 16:05:26 浏览: 28
可以使用插入排序的思想来解决这个问题。
具体步骤如下:
1. 输入要插入的数。
2. 从数组末尾开始向前遍历,找到第一个比要插入的数小的位置。
3. 将要插入的数插入到该位置后面。
4. 输出插入后的数组。
代码如下:
```c
#include <stdio.h>
int main()
{
int a[10] = {100, 80, 70, 60, 50, 40, 30, 20, 10};
int n, i, j;
printf("请输入要插入的数:");
scanf("%d", &n);
for (i = 8; i >= 0 && a[i] > n; i--) {
a[i + 1] = a[i];
}
a[i + 1] = n;
printf("插入后的数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
假设输入要插入的数为 75,则输出结果为:
```
请输入要插入的数:75
插入后的数组为:
100 80 75 70 60 50 40 30 20 10
```
相关问题
C语言编程设有一个已排好降序的数组,今输入一个数,要求按原来排序的规律将它插入钊数组中。
可以按照以下步骤实现:
1. 定义一个已排好降序的数组和一个待插入的数。
```
int arr[] = {10, 8, 6, 4, 2};
int num = 5; // 待插入的数
```
2. 循环遍历数组,找到待插入的数应该插入的位置。
```
int i, j;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (num >= arr[i]) {
break;
}
}
```
3. 将待插入的数插入到数组中。
```
for (j = sizeof(arr) / sizeof(arr[0]) - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
arr[i] = num;
```
完整的代码如下:
```
#include <stdio.h>
int main() {
int arr[] = {10, 8, 6, 4, 2};
int num = 5; // 待插入的数
int i, j;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (num >= arr[i]) {
break;
}
}
for (j = sizeof(arr) / sizeof(arr[0]) - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
arr[i] = num;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:`10 8 6 5 4 2`。
C语言编程设有一个已排好序的数组,考虑降序,今输入一个数,要求按原来排序的规律将它插入钊数组中。
可以使用插入排序的思想来解决这个问题。具体步骤如下:
1. 定义一个变量 `i`,从数组的最后一个元素开始向前遍历,找到第一个比插入的数小的元素的位置 `j`。
2. 将元素 `j` 之后的所有元素向后移动一个位置,为插入的数腾出位置。
3. 将插入的数放入位置 `j`。
下面是具体的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n, i, j;
printf("请输入要插入的数:");
scanf("%d", &n);
// 寻找插入的位置
for (i = 9; i >= 0; i--) {
if (n > arr[i]) {
break;
}
}
// 将元素后移
for (j = 9; j > i + 1; j--) {
arr[j] = arr[j - 1];
}
// 插入元素
arr[i + 1] = n;
// 输出结果
printf("插入后的数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
假设原来的数组为 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19},插入的数为 6,则插入后的数组为 {1, 3, 5, 6, 7, 9, 11, 13, 15, 17, 19}。