假设有一个数組定义和初始化如下。 int a6] = 11,3.6.7,91, 编写一个函数void Str_insert (int pDD. int ×),完成将x按顺序插入到数组p中。再在主函数中测试这个函 数。 (提醒:注意头尾位置的插入)
时间: 2024-02-20 11:57:02 浏览: 55
DCMTK3.6.7-Win11-VS2019-Release/Debug
好的,让我来解答你的问题。
以下是函数 `Str_insert` 的实现:
```c++
void Str_insert(int p[], int len, int x) {
int pos = len;
for (int i = 0; i < len; i++) {
if (x < p[i]) {
pos = i;
break;
}
}
for (int i = len - 1; i >= pos; i--) {
p[i + 1] = p[i];
}
p[pos] = x;
}
```
这个函数接受一个整数数组 `p`,数组长度 `len` 和一个待插入的整数 `x` 作为参数。它将 `x` 按照从小到大的顺序插入到数组 `p` 中,并保证数组 `p` 依然是有序的。
在主函数中,可以这样测试这个函数:
```c++
int main() {
int a[] = {11, 3, 6, 7, 91};
int len = sizeof(a) / sizeof(a[0]);
Str_insert(a, len, 4);
for (int i = 0; i < len + 1; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
这个程序首先定义了一个整数数组 `a`,然后调用 `Str_insert` 函数将整数 4 插入到数组中。最后,程序输出了插入后的数组。
希望我的回答能够解决你的疑问。
阅读全文