【发布时间】:2022-01-14 01:07:52
【问题描述】:
大家好,
我的任务是从数组中删除所有负数,并缩短它(返回新长度作为正数的数量)。我尝试通过 BubbleSort 右侧的所有负数来做到这一点,新长度将是(旧长度 - 交换数)。我的代码只是冻结了系统。
如果你们能提供帮助,我将不胜感激。
void swap(int *p, int *q) {
int h = *p;
*p = *q;
*q = h;
}
int remove_negatives(int *array, int length) {
int *a;
int n = length;
a = &array[n - 1];
for (int i = 0; i <= n - 1; i++) {
while (array < a) {
if (*array < 0) {
swap(a, array);
a--;
array++;
length--;
}
}
}
printialn(array, n);
return length;
};
int main(void) {
int a[] = {-1, 2, 4, -8, 3, 7, -8, 9, 3};
int l = sizeof(a) / sizeof(a[0]);
printiln(remove_negatives(a, l));
return 0;
}
【问题讨论】:
-
代码不完整。
printialn和printiln是什么?