Ciao ragazzi, sto cercando di scrivere un esercizio in c per l'università ma ahimè mi trovo in serie difficoltà.
Il testo dell'esercizio è il seguente:
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. Si modifichi poi la funzione cerca definendo la funzione cerca_vettore_ordinato che faccia le stesse cose descritte in precedenza ma su un vettore ordinato
Ho provato a buttare giù uno straccio di codice ma ovviamente non funziona niente.
#include<stdio.h>
#include<stdlib.h>
int funzione_cerca (int vettore[], int dimensione, int elem); //prototipo della mia funzione
//alla funzione verranno passati tre argomenti di tipo intero e la stessa dovrà restituire un valore di tipo intero
int main() {
int vettore[8]={10,5,15,20,25,40,5,56};
int dimensione=8;
int elem=20;
int appoggio;
funzione_cerca (&vettore[dimensione],dimensione,elem);
appoggio=funzione_cerca(&vettore[dimensione],dimensione,elem);
printf("%d",appoggio);
return 0;
}
int funzione_cerca (int vettore[], int dimensione, int elem) {
int m,posizione;
for(m=0; m<dimensione; m++) {
if(vettore[m]==elem) {
posizione=m;
return posizione;
}
else return -1;
}
}
Se provo a cercare il valore 20 perchè la funzione non mi restituisce il valore 3 (posizione del valore nell'array) quando vado a stamparlo con printf?
Ogni suggerimento è ben accetto anche perchè non so più cosa inventarmi
Grazie in anticipo