输入n个数,已经按照从小到大顺序排好,现在另外给一个整数,请将该数查到序列中,并使新的序列任然有序用c#写
时间: 2023-05-20 15:02:33 浏览: 86
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
语言实现:
1. 首先读入n个数,存储在一个数组中。
2. 再读入一个整数x。
3. 从数组的最后一个元素开始,向前遍历,找到第一个比x小的元素的位置,记为pos。
4. 将x插入到pos+1的位置上,即将pos+1到n-1的元素都向后移动一位。
5. 输出新的序列。
代码实现:
```c
#include <stdio.h>
int main()
{
int n, a[100], x, i, pos;
// 读入n个数
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 读入一个整数x
scanf("%d", &x);
// 找到第一个比x小的元素的位置
pos = n - 1;
while (pos >= 0 && a[pos] > x) {
pos--;
}
// 将x插入到pos+1的位置上
for (i = n - 1; i > pos; i--) {
a[i] = a[i - 1];
}
a[pos + 1] = x;
// 输出新的序列
for (i = 0; i < n + 1; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
阅读全文