PDA

Visualizza la versione completa : [C++] Incastro stringhe con funzione ricorsiva


mistergks
06-04-2011, 19:29
Ho fatto questo esercizio ma non riesco a farlo funzionare, mi date una mano?

Si scriva in C++ una funzione RICORSIVA che, ricevuti come parametri (almeno) tre array di caratteri, A B e C, e la loro dimensione, riempia C incastrando ad incrocio i caratteri presenti in A e B come descritto di seguito. Ogni coppia di elementi consecutivi in C deve essere formata da un carattere di A e da uno di B; gli elementi di A vanno usati da sinistra verso destra( cioè prima il primo, poi il secondo e così via) mentre gli elementi di B devono essere usati da destra verso sinistra (ossia, prima l’ultimo, poi penultimo, ecc.). Pertanto, la prima coppia di elementi in C sarà formata dal primo carattere di A e dall’ultimo in B, la seconda coppia in C, conterrà, il secondo elemento di A ed il penultimo di B e così via, finché tutti i caratteri di A e di B saranno stati considerati.
Si noti che, perché l’incastro sia fattibile, gli array A e B devono avere la stessa dimensione n, mentre la dimensione di C deve essere 2*n. Se la funzione riceve come parametri array le cui dimensioni non rispettano queste condizioni, l’incastro non deve essere effettuato e la funzione deve terminare restituendo false.


A B C
VERDE ROSSO VOESRSDOER


ESEMPIO: Dati gli array A e B riportati sopra, la funzione dovrà
riempire l’array C come illustrato in figura e terminerà restituendo true.



La mia soluzione:


bool incastro(char A[], int dim, char B[], int dim, char C[], int dimC, int i){
if(dimC!=dim*2)
return false;

if(A[i]==dim)
return true;
C[i]=A[i];
C[i]=B[i];

incastro(A, dim, B, dim-1, C, dimC, i+1);
}

Loading