/* File: ricorsio.c */ /* Time-stamp: "2001-03-26 01:47:17 calvanes" */ /* Scopo: primo esempio di funzione ricorsiva */ #include <stdio.h> void ricorsiva(int i) { printf("Sono ricorsiva(%d)", i); if (i == 0) printf(" - Ho finito\n"); else { printf(" - Attivo ricorsiva(%d)\n", i-1); ricorsiva(i-1); printf("Sono di nuovo ricorsiva(%d)", i); printf(" - Ho finito\n"); } return; } int main(void) { int j; printf("Sono main()\n"); printf("Inserisci un intero non negativo: "); scanf("%d", &j); printf(" - Attivo ricorsiva(%d)\n", j); ricorsiva(j); printf("Sono di nuovo main()"); printf(" - Ho finito\n"); return 0; } /* output Sono main() Inserisci un intero non negativo: 2 - Attivo ricorsiva(2) Sono ricorsiva(2) - Attivo ricorsiva(1) Sono ricorsiva(1) - Attivo ricorsiva(0) Sono ricorsiva(0) - Ho finito Sono di nuovo ricorsiva(1) - Ho finito Sono di nuovo ricorsiva(2) - Ho finito Sono di nuovo main() - Ho finito */