用C语言把数组十个数中的负数放到前面去
时间: 2023-07-01 08:18:43 浏览: 193
C++负数赶正数
可以使用双指针法将负数放到数组的前面。
具体实现步骤如下:
1. 定义两个指针 i 和 j,分别指向数组的第一个元素和最后一个元素。
2. 当 i < j 时,执行以下循环:
- 如果 a[i] 是负数,i++;
- 如果 a[j] 是正数,j--;
- 如果 a[i] 是正数,a[j] 是负数,交换它们的位置,并分别将 i++,j--;
3. 当 i >= j 时,数组中的负数都已经移动到了前面。
下面是完整的 C 语言代码实现:
```
#include <stdio.h>
void moveNegative(int a[], int n) {
int i = 0, j = n - 1;
while (i < j) {
if (a[i] < 0) {
i++;
} else if (a[j] >= 0) {
j--;
} else {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}
}
int main() {
int a[10] = {-1, 2, 3, -4, 5, -6, 7, -8, 9, 0};
int n = 10;
moveNegative(a, n);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
输出结果为:-1 -4 -6 -8 0 5 7 3 9 2
阅读全文