Arrays

Angenommen wir wollen eine Lotto-Simulation schreiben. Also der User sucht sich 6 Zahlen aus, danach ermitteln wir die 6 gezogenen Zahlen und vergleichen wieviele Richtige der User hat. Wir könnten jetzt ganz viele verschiedene Variablen nehmen, um diese 6 Zahlen zu speichern . Oder wir verwenden Arrays. Ein Array ist eine Zusammenfassung von mehreren Variablen mit dem gleichen Typen. Zugegriffen wird auf die einzelnen Werte über einen Index, der die Position in dem Array angibt.

    #include<iostream>
    using namespace std;

    int main()
    {
      int array[10];
      int i;

      for(i=0;i<10;i=i+1)
      {
        array[i]=i;
      }

      for(i=0;i<10;i=i+1)
      {
        cout<<array[i]<<"\n";
      }

      cin.get();
    }

Die größe des Arrays muss eine konstante Zahl sein. Siehe dazu Konstante Variablen. Nachträgliche größen Änderungen sind nicht möglich.

Man muss aber höllisch aufpassen, dass man nicht über das Array hinausschreibt. Also bei einem 10-Elementigen Array in das 11. Element schreibt - sonst stürzt das Programm wahrscheinlich ab (undefiniertes Verhalten).

Mit int array[10]; legen wir ein Array aus 10 Elementen an. zu beachten gilt: array[0] ist das erste Element und array[9] das letzte! Ein C++ Programmierer beginnt beim Zählen immer bei 0.

Wenn man ein Array initialisiert, kann man die größen Angabe weglassen:

    #include<iostream>
    using namespace std;

    int main()
    {
      int array[]={0,1,2,3,4,5,6,7,8,9};
      //array hat 10 elemente

      int array2[3]={0,1};
      //array2[0]==0, array[1]==1, array[2]==0

      int array3[2];
      //array3[0] und array3[1] sind undefiniert

      int array4[100]={0};
      //alle elemente haben den wert 0

      int array5[100]={1};
      //das erste element hat den wert 1, alle anderen den wert 0

      char array6[2][5]=  //die 2 ist optional
      {
        {'H','a','l','l','o'},
        {'W','e','l','t'}
      };
      //array[0][4] == 0
    }

Normalerweise sollte man keine statischen Arrays verwenden, sondern es lieber in eine Klasse packen - aber das werden wir erst später lernen.

Dank des sizeof Operators, kann man die größe eines Arrays auch berechnen:

    #include<iostream>
    using namespace std;

    int main()
    {
      int array[10];
      cout<<"groesse von array: "<< sizeof(array)/sizeof(array[0])<<"\n";
    }

sizeof array liefert 10*sizeof int. Wenn wir das nun durch sizeof array[0] - was ja gleichbedeutend mit sizeof int ist, dividieren, erhalten wir 10.

Deine Aufgabe ist jetzt, ein Programm zu schreiben, welches die ersten 10 Elemente der Zweierreihe (2,4,8,16,32,...) in ein Array schreibt, und diese dann rückwärts ausgibt.

Hier ist die Lösung

top