[ create a new paste ] login | about

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

C, pasted on Jan 26:
#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: