Array Variablen bestimmen

Drager

Neues Mitglied
Hallo Zusammen,

ich habe ein Frage zu folgendem Programm: Wie werden hier die Array-Variablen da[2-4] errechnet? Ich kann das Ergebnis nicht nachvollziehen..


C:
int main(void)

{

  int k = 2;

  int da[5];

  da[0] = 2;

  da[1] = 2;

  while (k < 5) {

    da[k] = da[k - 1] + da[k - 2] + k;

    k++;
  }

  k = 0;

  while (k < 5) {

    printf("%d, ", da[k]);

    k++;
  }

  printf("\n");
}

Ergebnis: d[2] = 6 d[3] = 11 d[4] = 24

Könnte mir das bitte jemand erklären?

Besten Dank!
 

asc

Mitglied
devCommunity-Experte
Am einfachsten lässt sich sowas nachvollziehen, wenn man die Schleife auflöst:
Code:
while (k < 5) {
  da[k] = da[k - 1] + da[k - 2] + k;
  k++;
}
Folgendes wird gemacht:
Code:
// k == 2;
da[2] = da[2 - 1] + da[2 - 2] + 2;
// k++
// k == 3
da[3] = da[3 - 1] + da[3 - 2] + 3;
// k++
// k == 4
da[4] = da[4 - 1] + da[4 - 2] + 4;
// k++
// k == 5 -> ende
Die Offsetberechnung kann man fürs bessere Verständnis auch noch reduzieren:
Code:
da[2] = da[1] + da[0] + 2; // 2 + 2 + 2 = 6

da[3] = da[2] + da[1] + 3; // 6 + 2 + 3 = 11

da[4] = da[3] + da[2] + 4; // 11 + 6 + 4 = 21
Jetzt ist ziemlich klar wie die Werte zustande kommen, oder?
Warum du bei d[4] 24 erhältst kann ich dir auch nicht sagen :D
 
Zuletzt bearbeitet:
Oben Unten