Wo liegt der Unterschied?

1 Antwort

Du verwendest im zweiten Code i sowohl als Schleifenzähler als auch zum Akkumulieren des Endergebnisses. Das muss schief gehen.

Kürzer:

int Pow(int a, int b) {
  int p = 1;
  while (b— > 0) {
    p *= a;
  }
  return p;
}

Blöde Schrift! Hinter dem b sind 2 Minuszeichen.