#include <stdio.h>
void shift_positives(int values[], int num_values) {
int left = 0;
for (int right = 0; right < num_values; right++) {
if (values[right] > 0) {
values[left++] = values[right];
}
}
while (left < num_values) {
values[left++] = 0;
}
}
int main(void) {
int data[] = {1,0,99,-1,-2,3,-5};
shift_positives(data, 7);
for (int i = 0; i < 7; i++) {
printf("%d -> %d\n", i
, data
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHNoaWZ0X3Bvc2l0aXZlcyhpbnQgdmFsdWVzW10sIGludCBudW1fdmFsdWVzKSB7CiAgICBpbnQgbGVmdCA9IDA7CiAgICBmb3IgKGludCByaWdodCA9IDA7IHJpZ2h0IDwgbnVtX3ZhbHVlczsgcmlnaHQrKykgewogICAgICAgIGlmICh2YWx1ZXNbcmlnaHRdID4gMCkgewogICAgICAgICAgICB2YWx1ZXNbbGVmdCsrXSA9IHZhbHVlc1tyaWdodF07CiAgICAgICAgfQogICAgfQogICAgd2hpbGUgKGxlZnQgPCBudW1fdmFsdWVzKSB7CiAgICAgICAgdmFsdWVzW2xlZnQrK10gPSAwOwogICAgfQp9CgppbnQgbWFpbih2b2lkKSB7CglpbnQgZGF0YVtdID0gezEsMCw5OSwtMSwtMiwzLC01fTsKCXNoaWZ0X3Bvc2l0aXZlcyhkYXRhLCA3KTsKCWZvciAoaW50IGkgPSAwOyBpIDwgNzsgaSsrKSB7CgkJcHJpbnRmKCIlZCAtPiAlZFxuIiwgaSwgZGF0YVtpXSk7Cgl9CglyZXR1cm4gMDsKfQ==