Programmino strano.

di il
3 risposte

Programmino strano.

Salve a tutti, mi viene dato un codice in C come il seguente...


#define MATR 623372 /* Ad esempio "623372" */
#defineCIFRE 0987654321


void f( int);
void g( char*, char* );

int main() { f(3);
return 0; }


voidf( int i ) {
char mat[7] = MATR;
char cif[11] = CIFRE;
mat[0]=mat[1]=mat[2]='A'+i-3;
if( mat != '\0' )
g( mat+i, cif );
return;
}

void g( char* mat, char* cif ) {
char* start=NULL;
if( *mat != '\0' ) {
start = cif;
while( *cif != *mat )
cif++;
printf("+ %c%d +", *mat, cif-start);
f( 7 - strlen(mat) );
}
return;
}

e poi mi viene detto che l'output, dati questi dati, è: + 37 ++ 73 ++ 28 +

Qualcuno riesce a spiegarmi a parole cosa fa questo programma?
Evidente è la ricorsione delle due funzione f e g di cui una chiama l'altra, però boh, a me non torna quell'output perchè verrebbero più stampe!

3 Risposte

  • Re: Programmino strano.

    Metti i tag code e indenta il codice! Così per me è difficile da leggere!
  • Re: Programmino strano.

    Ciao Hai proprio ragione! Grazie! Adesso è più leggibile?
  • Re: Programmino strano.

    Giuseppe008 ha scritto:


    Ciao Hai proprio ragione! Grazie! Adesso è più leggibile?
    Ma che dici? Ancora non li hai messi i tag code !
Devi accedere o registrarti per scrivere nel forum
3 risposte