[ create a new paste ] login | about

Link: http://codepad.org/vlPYBna7    [ raw code | output | fork ]

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
{ 1, 2, 0, 0, 0, 3, 4, 0, 5, 0 }
{ 1, 2, 3, 4, 5, 0, 0, 0, 0, 0 }


Create a new paste based on this one


Comments: