/*------------------------------------------------------------------\
 * Algorithmen und Datenstrukturen, WS 2005/06                      |
 *                                                                  |
 * Kapitel 1.1: Sortieren durch Einfügen                            |
 * 1. Programmieraufgabe                                            |
 *                                                                  |
 * Datum: 01.11.2005                                                |
 * Autor: Oliver Ernst                                              |
 *        Institut fuer Numerische Mathematik und Optimierung       |
 *        TU Bergakademie Freiberg                                  | 
 *-----------------------------------------------------------------*/ 

#include <stdio.h>

void insertionsort(int *A, int len)
/*------------------------------------------------------------------\
 * Diese C-Funktion sortiert ein Feld ganzer Zahlen aufsteigend     |
 * mit dem Insertion-Sort Algorithmus.                              |
 * Beachte: In C werden Felder (arrays) ab 0 indiziert.             |
 *                                                                  |
 * Eingabe : A : Integer-Feld                                       |
 *           len : Laenge des Feldes                                |
 *-----------------------------------------------------------------*/
 {
   /* Hier Ihr Programm einfügen
	*/
}

main()
/*------------------------------------------------------------------------------\
 * Hier eine etwas komfortable Testvariante: das zu sortierende Feld wird aus   |
 * einer Datei eingelesen. Diese soll, damit sie einfach zu erstellen ist, aus  |
 * ASCII-Zeichen bestehen, und zwar eine ganze Zahl pro Zeile.                  |
 *------------------------------------------------------------------------------*/
 {
  FILE *inFile;                             /* Datei mit Zahlenfeld */
  char line[10];                            /* Eine gelesene Zeile */
  int A[100];                               /* Integer-Feld */  
  int i, len;

  inFile = fopen("input.txt", "r");         /* Datendatei zum Lesen oeffnen */
  if (inFile == NULL) {                     /* Fehlerausgang */
    fprintf(stderr, "Fehler: Datei 'input.txt' konnte nicht geoeffnet werden.\n");
    exit(1);
  }
  i = 0;
  while (fgets(line, sizeof(line), inFile)) /* Lese solange Zeilen ein wie in der */
    sscanf(line, "%d", &A[i++]);            /* Datei vorhanden. Lese in dieser    */
                                            /* eine ganze Zahl und fuege diese in */
                                            /* das Feld A ein, erhoehe danach Zae-*/
                                            /* ler i.                             */
  len = i-1;                                /* Laenge von A */
  fclose(inFile);

  insertionsort(A,len);                     /* Sortierfunktion aufrufen */ 

  for (i=0; i<len; i++)                     /* Ausgabe der sortierten Zahlen */
    printf("%d\n",A[i]);
}

