Ciao avrei un problemone.In pratica ci è stato dato un certo esercizio,il cui testo richiede di scrivere il codice della funzione ricorsiva "req",che,dati due array di char in ingresso con le loro dimensioni,restituisce un booleano che dice se i due array sono uguali o meno.Già qui..cosa si intende per array uguali? stesse dimensioni?stesso contenuto?o entrambi? io l'ho interpretata come se dovessero avere dimensioni e contenuti identici. Quindi ho scritto:
#include<iostream>
using namespace std;
bool req(char x[],int dimx,char y[],int dimy)
{
int i;
if(dimx!=dimy)
{
return false;
}
else
{
if(dimx==0)/*ho messo dimx ma potevo mettere anche dimy,nel primo if
chiede se sono diversi,se non lo sono allora sono uguali immagino*/
{
return true;
}
else
{
if(x[dimx-1]!=y[dimy-1])
{
return false;
}
else
{
return req(x,dimx-1,y,dimy-1);
}
}
}
}
il problema è che provando ad implementarla in un programma mi sembra sempre più inutile stringa dopo stringa:
int main()
{
char a[5];
char b[5];
int dima=5;
int dimb=5;
cout<<"inserisci prima parola lettera per lettera\n";
for (int i=0;i<5;i++)
{
cin>>a[i];
}
cout<<"inserisci seconda parola lettera per lettera\n";
for (int j=0;j<5;j++)
{
cin>>b[j];
}
cout<<"controllo se sono uguali....\n"<<req(a,dima,b,dimb);
system("pause");
return 0;
}
Cioè sarebbe stata carina se mettendo direttamente una parola lui controllasse quante lettere la compongono almeno,perchè se già inizializzo i vettori con determinate dimensioni il controllo nella funzione non serve a niente.E' questo che mi fa dubitare della correttezza del mio programma :\. Grazie ciao!