题目中给定了一个数组x,其数据为1、-2、3、4、-5、6、-7。然后调用函数f后,数组x中的数据变为了1、3、4、6、0、0、0,输出结果为1、3、4、6。 请用c语言写出这个函数
时间: 2023-07-10 16:18:03 浏览: 169
数据结构_期末考试试卷_复旦大学计算机科学技术学院-2012(1)1
好的,这是一个C语言的实现:
```c
#include <stdio.h>
void f(int x[], int len) {
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (x[i] > 0) {
x[j++] = x[i];
}
}
while (j < len) {
x[j++] = 0;
}
}
int main() {
int x[] = {1, -2, 3, 4, -5, 6, -7};
int len = sizeof(x) / sizeof(x[0]);
f(x, len);
int i;
for (i = 0; i < len; i++) {
if (x[i] > 0) {
printf("%d ", x[i]);
}
}
printf("\n");
return 0;
}
```
函数f接收一个整形数组x和它的长度len。它遍历整个数组,将大于0的数移动到数组前面,最后用0填充数组的末尾。主函数调用f函数后,再遍历最终的数组,输出大于0的数。
阅读全文