Buongiorno a tutti, avevo questo esercizio scritto da un professore sull'appartenenza di un elemento a un array, ma nell'andare a farlo non mi funziona. Questa è la function di appartenenza:
int appartiene_aF(float chiave, float a[], int n){
int i=0;
for(i=0; i<n; i++){
if(chiave==a[i])
return 1;
else return 0;
}}
La chiamata della function:
esito_ricerca=appartiene_aF(chiave, a, n_elem);
if(esito_ricerca)
printf("L'elemento appartiene all'array");
else printf("L'elemento non appartiene all'array");
Questo è il codice per intero:
int appartiene_aF(float, float [], int n);
void legge_da_tastiera_aF(float [], int);
void visualizza_aF(float [], int);
int main(){
float a[100], chiave;
int esito_ricerca, n_elem;
printf("Inserire numero degli elementi dell'array <=100: ");
scanf("%d", &n_elem);
printf("Inserire gli elementi dell'array: \n");
legge_da_tastiera_aF(a, n_elem);
printf("L'array e': \n");
visualizza_aF(a, n_elem);
printf("\n");
printf("Inserire elemento da ricercare nell'array: ");
scanf("%f", &chiave);
esito_ricerca=appartiene_aF(chiave, a, n_elem);
if(esito_ricerca)
printf("L'elemento appartiene all'array");
else printf("L'elemento non appartiene all'array");
return 0;
}
void legge_da_tastiera_aF(float a[], int n){
int i;
for(i=0; i<n; i++){
printf("Inserisci elemento %d dell'array: ", i+1);
scanf("%f", &a[i]);
}
}
void visualizza_aF(float a[], int n){
int i;
for(i=0; i<n; i++){
printf("%f ", a[i]);
}
}
int appartiene_aF(float chiave, float a[], int n){
int i=0;
for(i=0; i<n; i++){
if(chiave==a[i])
return 1;
else return 0;
}}
Il programma non riconosce mai l'appartenenza di un elemento all'array, è come se ritornasse sempre 0 e mai 1 (ho provato a scrivere !esito_ricerca nel main e invertire le printf e ho verificato).