?
Dann brauchst du eventuell ein paar zusätzliche Debug-Ausgaben:
int ack(int n, int m)
{
static int zaehler=0;
int temp;
zaehler++;
printf("%*cack(%d,%d):\n",zaehler,' ',n,m);
if ((n<0)||(m<0))
{
printf("%*c=-1\n",zaehler--,' ');
return -1;
}
if (n==0)
{
printf("%*c=%d\n",zaehler--,' ',m+1);
return m+1;
}
if (m==0)
{
temp=ack(n-1,1)
printf("%*c=%d\n",zaehler--,' ',temp);
return temp;
}
temp=ack(n, m-1);
printf("%*c tmp=%d\n",zaehler,' ',temp);
temp=ack(n-1,temp);
printf("%*c=%d\n"zaehler--,' ',temp);
return temp;
}
int main ()
{
printf ("%d",ack(1,2));
}
(jetzt wird nahezu jede Bewegung des Algorithmus dokumentiert und je nach Schachtelungstiefe unterschiedlich weit eingerückt)