/* Example 9.4: Sorting by finding max Author: Peter Brusilovsky */ #include #define N 7 /* dimension of the array */ int readarray(int ar[], int n); int printarray(int ar[], int n); int maxelement(int ar[], int n); main() { /* declare an array */ int testarray[N]; int top, swap, maxel; readarray(testarray, N); for (top = N; top >= 2; --top) { maxel = maxelement(testarray, top); /* swapping maxel and top element */ swap = testarray[maxel]; testarray[maxel] = testarray[top-1]; testarray[top-1] = swap; } printarray(testarray, N); return 0; } /* array input */ int readarray(int ar[], int n_of_elements) { int i; for (i = 0; i < n_of_elements; ++i) { printf("%d> ", i); scanf("%d", &ar[i]); } return 0; } /* array output */ int printarray(int ar[], int n_of_elements) { int i; printf("Array = "); for (i = 0; i < n_of_elements; ++i) printf("%d ", ar[i]); printf("\n"); return 0; } /* finding index of max array element from start to n */ int maxelement(int ar[], int n) { int i, maxind = 0; for (i = 1; i < n; ++i) if (ar[maxind] < ar[i]) maxind = i; return maxind; }