//
#include#include // ------------------------------------------------------------- void minmax (int n, int A[], int &MIN, int &MAX) { int i, h ; MAX = MIN = A[0] ; for (i=1; i A[i+1]) { A[i] = A[i+1] ; A[i+1] = h ; } // Jetzt gilt für ungerade i, daß der Inhalt von A[i] // kleiner-gleich dem Inhalt von A[i+1] ist. Darum kann das // Minimum nur an einer ungeraden Position stehen und das Maximum // nur an einer geraden Position. if (A[i] < MIN) MIN = A[i] ; if (A[i+1] > MAX) MAX = A[i+1] ; } if (i==n-1) // Ist n gerade, wurde der letzte Eintrag A[n-1] // noch nicht berücksichtigt, was hier nachgeholt wird. if (A[n-1] MAX) MAX = A[n-1] ; } // ------------------------------------------------------------- int main(int argc, char* argv[]) { int n = atoi(argv[1]), i ; int *A ; int kleinster, groesster; A = (int *) malloc (n * sizeof(int)) ; for (i=0;i