Ciao ragazzi , ho questo programma di cui devo fare lo stackdei record di attivazione e poi dire cosa stampa:
int main() {
int x = 5 ;
char nord[] = "BS",
sud[] = "NA";
printf("%c", nord[(++x)%2]);
x = f( nord, sud, x-1 );
printf("%c", nord[(++x)%2]);
return 0;
}
int f( char *nord, char *sud,
int x ) {
if( !x ) printf(" & ");
else {
printf("%c", sud[x%2]);
x = f( nord, sud, x-1 );
printf("%c", sud[x%2]);
}
return x+1;
}
Lo stack l'ho fatto senza problemi , ma quando mi chiede di dire cosa stampa io avrei detto BANANA&A , perchè non ho capito bene come usare l'istruzione di stampa evidenziata.
Il programma deve stampare BANANA&ANANAS.
Una volta che io entro nella funzione f e la ripeto fino a quando x non è 0 a questo punto stampo BANANA& poi la funzione restituisce x+1 (cioe 0+1) ed eseguo l'istruzione evidenziata e stampa A;
A questo punto non cè nulla che iteri il procedimento in modo da far stampare NANA.
Spero di essere stato chiaro e che qualcuno mi possa dare una mano.
grazie