Cosa fa questo programma?

  • Autore discussione Autore discussione cai
  • Data d'inizio Data d'inizio
Pubblicità

cai

Nuovo Utente
Messaggi
2
Reazioni
0
Punteggio
24
Buonasera a tutti
Volevo chiedervi un aiuto perchè (sono ancora in alto mare) non capisco cosa faccia questo programma che è stato messo all'ultimo appello di informatica del mio corso (Ingegneria Biomedica).
Questo è il codice:

#include <stdio.h>
#include <string.h>
#define dim 5
int foo(char c, char * s, int l);
int main() {
char s[dim];
int s_len,out;
do{
printf("Inserire una stringa di massimo %d caratteri: ", dim);
scanf("%s",s);
s_len = strlen(s);
}while(s_len>dim);
out=foo(*s, s, s_len);
printf("-> %d \n", out);
return 0;
}
int foo(char c, char * s, int l){
if (l==0)
return 0;
if (c==(*s))
return foo(c, s+1, l-1) + 1;
else return foo(c, s+1, l-1);
}

Si descriva l’obiettivo del programma presentato e si spieghi cosa fa la funzione
foo.

Grazie mille
 
Ultima modifica:
Così ad occhio mi pare che la funzione ricorsiva foo conti il numero di ripetizioni della prima lettere della stringa letta.
Certo il processo di input è abbastanza insicuro, scanf di input più grandi della variabile di destinazione senza controlli...
 
Effettivamente compliandolo dovrebbe contare quante volte si ripete la prima lettera; penso che non ci fossero controlli o raffinamenti eccessivi proprio perchè l'obiettivo era che noi riconoscessimo la funzione ricorsiva (cosa che ovviamente non ho riconosciuto..:() e cosa facesse.
Ti ringrazio per l'aiuto!!
 
Pubblicità
Pubblicità
Indietro
Top