C,
pasted
on Apr 1:
|
#include <stdio.h>
void swap (int *a, int i, int j) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void printarr(int* a, int size) {
putchar('{');
int i;
for (i = 0; i < size; i++) {
if (i != 0) putchar(',');
printf(" %d", a[i]);
}
printf(" }\n");
}
int main(int argc, char **argv) {
int arr[10] = {1,2,0,0,0,3,4,0,5,0};
int size = sizeof arr / sizeof arr[0];
printarr(arr, size);
int i, j;
for (i = 0, j = 0; j < size; j++) {
if (arr[j] != 0) {
if (i < j) {
swap(arr, i, j);
}
i++;
}
}
printarr(arr, size);
return 0;
}
|
Output:
|
{ 1, 2, 0, 0, 0, 3, 4, 0, 5, 0 }
{ 1, 2, 3, 4, 5, 0, 0, 0, 0, 0 }
|
|