4° Appello – 09/07/2019 - Domanda 2

OUTPUT

a=10 b=6
a=12 b=3
a=14 b=0
a=16 b=-3

La condizione if(0) non è mai verificata e quindi di fatto non è presente un caso base tale per cui la funzione ricorsiva termini sempre. Deve essere ad esempio:

int calcola(int n1, int n2) {
    int a, b;
    a = n1 + 2;
    b = n2 - 3;
    printf(“a=%d b=%d\n”,a,b);
    if ( n1>n2 ){
        return a;
    }else{
        return calcola(a,b);
    }
}
1 Mi Piace