|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 2
|
[C] Aiuto programma
Ciao, sono Tiziano e sono un nuovo membro del forum.
Vi chiedo un aiuto in quanto non riesco a capire cposa effettua tale programma: al momento non riesco a compilarlo e ho bisogno di capire cosa faccia per un progetto scolastico. Vi ringrazio. #include <stdio.h> void Magic(int in); int Even(int n); int main() { Magic(10); return(0); } void Magic(int in) { if (in == 0) return; if (Even(in)) printf("%i\n", in); Magic(in -1); if (!Even(in)) //tale blocco viene eseguito se 0 printf("%i\n", in); return; } int Even(int n) { return((n % 2) == 0) ? 1 : 0; } |
![]() |
![]() |
![]() |
#2 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
All'interno di main, viene effettuata una chiamata a Magic, con valore dell'argomento pari a 10.
Magic è definita ricorsivamente, ossia chiama se stessa durante la propria esecuzione: tale chiamata viene fatta con un valore dell'argomento decrementato di 1, quindi Magic(10) chiamerà Magic(9), che chiamerà Magic(8), che... finché non verrà chiamata Magic(0), che termina subito, passando numvamente l'esecuzione a Magic(1), che... Se il suo argomento non è 0, Magic effettua una chiamata a Even, che fa un controllo di parità. Da qui in poi puoi provare ad andara avanti tu. Quote:
Ah: quando scrivi un programma, indentalo bene (cerca sul vocabolario il verbo "indentare") e, al momento di postare il codice, inseriscilo in un tag "CODE" in modo che l'indentazione venga preservata.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Nov 2007
Messaggi: 2
|
grazie
Grazie, purtroppo non sono un grande programmatore e si vede...
grazie, ciao! |
![]() |
![]() |
![]() |
#4 |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Questo perché grandi programmatori si diventa, col tempo, lo studio e la pratica.
Nessuno nasce imparato.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:41.