oregon ha scritto:
La funzione deve essere void
Ti ringrazio anzi tutto Oregon per l'aiuto.
Ti faccio qualche domanda per capire: io dovrei passare alla function3 la struttura su cui lavorare, e successivamente quando la funzione 3 si conclude e legge il return, gestisco la struttura nella main per determinare (con un if) se il numero reale passato, è contenuto nel vettore a sua volta contenuto dalla struttura. Di conseguenza, perchè la funzione 3 dovrebbe essere void ? Non deve ritornare la struttura che ho gestito nella funzione stessa ?
mylib.c (funzione 3)
extern struct insieme function3(struct insieme vettore)
{
/* dichiarazione variabili locali */
struct vettore *ptr;
(*ptr).trovato = 0;
int i;
/* for start */
for (i=0,i<(*ptr).d;((*ptr).trovato= 0); i++)
if ((*ptr).numero_reale == (*ptr).vettore[i])
(*ptr).trovato= 1;
/* for end */
return(vettore);
}
main.c (case 3, utilizzo della funzione 3)
case'3':
/*caricamento array tramite la funzione 1 */
vettore=function1();
/*input numero reale*/
printf("Inserisci un numero reale: ");
scanf("%lf", &vettore.numero_reale);
printf("Il valore reale e': %lf\n",vettore.numero_reale ); /*debug printf*/
/*caricamento del numero reale */
vettore=function3(vettore);
/*facciamo un if in base al risultato di trovato, se la variabile trovato == 1 then il numero è presente, in caso contrario, non lo è */
if(vettore.trovato==1)
printf("il numero è presente nell'insieme\n");
else
printf("Il numero non è presente nell'insieme\n");
break;