/*------------------------------------------------------------------*/ /* sort1.c */ /* Author: Bob Dondero */ /* A baseline example */ /*------------------------------------------------------------------*/ #include enum {ARRAY_LENGTH = 10}; /*------------------------------------------------------------------*/ static void insertionSort(double *adNumbers, int iNumberCount) /* Sort adNumbers[0..iNumberCount-1] in ascending order. */ { int i1; int i2; double dTemp; for (i1 = 1; i1 < iNumberCount; i1++) for (i2 = i1; i2 > 0; i2--) if (adNumbers[i2] < adNumbers[i2-1]) { dTemp = adNumbers[i2]; adNumbers[i2] = adNumbers[i2-1]; adNumbers[i2-1] = dTemp; } } /*------------------------------------------------------------------*/ int main(int argc, char *argv[]) /* Read numbers from stdin, and write them in ascending order to stdout. Return 0. */ { double adNumbers[ARRAY_LENGTH]; int iNumberCount; double dNumber; int i; /* Read the numbers into an array. */ iNumberCount = 0; while (scanf("%lf", &dNumber) != EOF) { adNumbers[iNumberCount] = dNumber; iNumberCount++; if (iNumberCount == ARRAY_LENGTH) break; } /* Sort the array. */ insertionSort(adNumbers, iNumberCount); /* Write the numbers from the array. */ for (i = 0; i < iNumberCount; i++) printf("%g\n", adNumbers[i]); return 0; }