ciao ho bisogno di un aiuto per questo esercizio,il testo dice:
"Si scriva una funzione in C, denominata cerca, che ricerchi la presenza di un elemento in un vettore di interi. La funzione riceve in ingresso tre parametri: 1. un vettore di interi vettore[] nel quale ricercare il valore; 2. un valore intero dimensione che indica quanti elementi contiene il vettore; 3. il valore intero elem che deve essere ricercato. La funzione deve restituire: 1. se il valore elem è presente nel vettore, allora la funzione restituisce l’indice della posizione nella quale si trova tale valore; 2. se il valore elem è presente più volte, si restituisca l’indice di tutte le occorrenze; 3. se il valore elem non è presente nel vettore, si restituisca -1."
io ho scritto il codice in questo modo:
codice:
# include <stdio.h>
# include <stdlib.h>
# define MAX 100
//Funzione cerca
int cerca(int vettore[10], int elem, int dimensione) {
int i;
int posizione;
for (i = 0; i < dimensione; i++) { //scorro il vettore
if (vettore[i] == elem) {
posizione = i;
return(posizione);
}
}
return(-1);
}
int main() {
//Dichiarazioni
int vettore[MAX];
int i;
int dimensione, elem;
int risultato_ricerca;
printf("inserisci la dimensione del vettore\n");
scanf_s("%d", &dimensione);
if (dimensione > 100 || dimensione < 0){
printf("grandezza inserita non valida\n");
scanf_s("%d", &dimensione);
}
printf("inserisci dei valori nel vettore:\n");
for (i = 0; i < dimensione; i++){
scanf_s("%d",&vettore[i]);
}
printf("Vettore:\n");
for (i = 0; i < dimensione; i++) {
printf("%d ,", vettore[i]);
}
printf("valore da cercare:\n");
scanf_s("%d", &elem);
printf("elem = %d\n", elem);
risultato_ricerca = cerca(vettore,dimensione,elem);
printf("%d\n",risultato_ricerca);
system("pause");
return(0);
}
il problema che mi trovo ad avere è che non mi stampa l'indice della posizione,anzi nel caso che l'elemento sia presente o meno mi restituisce sempre il valore -1,per cui come posso risolvere??
grazie a tutti