Ciao a tutti dovrei progettare una funzione che ha come parametri di ingresso due insiemi e stabilisce ricorsivamente se sono uguali.
Questo è quello che ho fatto ma non so perché non funzione come dovrebbe:
TYPEDEF
typedef struct insieme
{
double *arr; /*array che andrà a contenere gli elementi dell'insieme*/
int dim; /*variabile per il numero di elementi dell'insieme*/
int ind; /*variabile indice per muoversi all'interno dell'array*/
} insieme_t;
FUNZIONE
/*definizione della funzione per confrontare due insiemi*/
int confronto ( insieme_t ins1, /*variabile per rappresentare il primo insieme*/
insieme_t ins2) /*variabile per rappresentare il secondo insieme*/
{
int risultato = 0; /*variabile per esportare nella main l'esito del confronto: 0 se diversi, 1 se uguali*/
if( (ins1.dim) == (ins2.dim) )
{
if( (ins1.ind) < (ins1.dim) )
{
for ( ins2.ind = 0; (ins2.ind) < (ins2.dim); ins2.ind ++)
if ( ins1.arr[ins1.ind] == ins2.arr[ins2.ind] )
{
ins1.ind ++;
confronto ( ins1, ins2);
}
//else
// risultato = 0;
// return(risultato);
}
else
risultato = 1;
}
else
risultato = 0;
ins1.ind = 0;
ins2.ind = 0;
return(risultato);
}
CHIAMATA NEL MAIN
int ris;
ris = confronto(ins1, ins2);
if(ris == 0)
printf("I due insiemi sono diversi.\n");
else
printf("I due insiemi sono uguali");
P.S.: Gli array si riempono a dovere quindi quella parte di codice non la posto.
Grazie in anticipo!!