Felder (Arrays)

Stellen Sie sich vor, sie wollen in Ihrem Programm zehn Integer-Variablen einlesen, alle in eigenen Variablen schreiben um hernach mit Ihnen weiterzurechnen und wieder ausgeben.

Sie müssten schreiben:

Int ia1,ia2,ia3,ia4, ..., ia10;

scanf("%i", &ia1); fflush(stdin); scanf("%i", &ia2); … scanf("%i",&ia10); fflush(stdin);

printf("%i", ia1); … printf("%i", ia10);

Das ist wirklich furchtbar aufwendig und unelegant. Das sind fast immer die gleichen Anweisungen, nur die "Nummer" der Variable a ändert sich. Für den Compiler ist das aber keine Nummer sondern ein Name wie jeder andere auch. Man kann aber Variablen durchnummerieren. Dann erhält man sogenannte Felder oder auch Arrays.

Deklaration: int ia[10];

Damit haben wir ein Feld der Länge 10 vom Typ Integer angelegt. Auf dieses Feld können wir nun zugreifen durch: ib=ia[2]; (Die Nummer in Klammern nennt sich INDEX)

Bei der Deklaration (und nur bei der Deklaration) kann dem Feld einzelne Werte durch geschweifte Klammern zugewiesen werden:

Int ia[4]={1,2,3,4};

ACHTUNG (!!): Der Compiler rechnet bei einer Variablen int ia[4]; bei Index von 0 bis 3 à Im obigen Beispiel hat deswegen ia[0] den Wert 1 und ia[3] den Wert 4.

Also Merke:

In der Deklaration gibt die Zahl in eckigen Klammern (nennen wir sie z) die Anzahl an Elementen im Feld an. Der verwendete Index geht von 0 bis (z-1) !

Wie kann ich nun den Index in for-Schleifen verwenden und mir beim obersten Beispiel viel Tipparbeit sparen ?

void main(void)

{ int ia[10], i;

for (i=0; i<10;I++)

{

scanf("%i", &ia[i]);

fflush(stdin);

}

for (i=0; i<10;I++)

printf("%i\n", &ia[i]);

}

  1. Erstellen Sie ein Programm, in dem Sie ein int-Array (20 Zahlen) deklarieren und mit zufälligen Zahlen zwischen 0 und 15 füllen. Lassen Sie die Zahlen ausgeben.
  2. Erstellen Sie ein Programm, in dem Sie ein double-Array (20 Zahlen) deklarieren und mit zufälligen Zahlen zwischen 0 und 15 füllen. Summieren Sie danach die Zahlen und geben Sie die Summe aus. Geben Sie auch den Durchschnitt aus.
  3. Wiederholen Sie die zweite Aufgabe mit einem int-Array.
  4. Erstellen Sie ein Programm, in dem Sie in einem int-Array jede zweite Zahl mit einer Zufallszahl zwischen 0 und 50 füllen. Füllen Sie die Lücken mit Nullen auf. Kopieren Sie nun jede zweite Zahl (die nicht null ist) in ein zweites Array (10 Zahlen).