#include #include /* ------------------------------------------------ Reduce: input: a[0] a[1] a[2] ... output: a[0] = a[0] a[1] = a[0]+a[1] a[2] = a[0]+a[1]+a[2] ... ------------------------------------------------ */ void reduce(int a[], int n) { int i; for (i = 1; i < n; i++) a[i] = a[i] + a[i-1]; } // A utility function ot print an array of size n void printArray(int a[], int n) { for (int i=0; i < n; i++) printf("%d ", a[i]); printf("\n"); } int main (int argc, char *argv[]) { int *arr; int N; int i; if (argc < 2) { printf("Usage error: %s N (N=# elements in array to sort)\n", argv[0]); exit(1); } N = atoi( argv[1] ); arr = calloc( N, sizeof(int) ); for ( i = 0 ; i < N; i++ ) arr[i] = 1; // rand()%100; printArray(arr, N); reduce(arr, N); printArray(arr, N); return (0); }