假设有一个数组定义和初始化如下: int a[6] ={ 1,3.6,7,9); 编写一个函数void Strinsert (int p[],int x),完成将x按顺序插入到数组p中。再在主函数中测试这个函数。 (提醒:注意头尾位置的插入) ***输入提示:"insertdata:'***输入格式:“%d” ***输出提示:"Now array a:\n”*输出格式: "%4d" C语言编程
时间: 2023-08-07 18:03:22 浏览: 158
《Java语言程序设计(一)》课后习题答案(课程编号04747)
好的,这个问题可以解决。下面是对应的C语言代码:
```C
#include <stdio.h>
void Strinsert(int p[], int x) {
int i = 0, j;
while (p[i] < x && i < 6) {
i++;
}
for (j = 5; j >= i; j--) {
p[j + 1] = p[j];
}
p[i] = x;
}
int main() {
int a[7] = {1, 3, 6, 7, 9};
int insertData, i;
printf("insertdata:");
scanf("%d", &insertData);
Strinsert(a, insertData);
printf("Now array a:\n");
for (i = 0; i < 7; i++) {
printf("%4d", a[i]);
}
return 0;
}
```
解释一下代码:首先定义了一个 `Strinsert` 函数,该函数接受一个数组 `p` 和一个整数 `x`,并将 `x` 按顺序插入到 `p` 中。具体实现是先找到 `x` 应该插入的位置 `i`,然后将 `i` ~ 5 的元素向右移动一位,最后将 `x` 插入到 `p[i]` 中。注意,这里假设数组 `p` 的长度为 7,这样就可以在头尾插入元素了。
在 `main` 函数中,我们首先定义了一个数组 `a`,然后读取用户输入的插入数据 `insertData`,调用 `Strinsert` 函数将其插入到数组 `a` 中,并输出结果。
希望这个代码可以帮到您!
阅读全文