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:
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??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); }
grazie a tutti

Rispondi quotando