ok non sono un genio in programmazione ma ci sto provando sul serio quindi ti chiedo un altra dritta..
per quanto riguarda il valore di ritorno quello che hai scritto è giusto pertanto ho pensato di fare restituire alla mia funzione un puntatore ad array dinamico e sperando che l'idea sia corretta ho modificato il codice in questo modo:
però non funziona lo stesso...come posso fare?codice:# include <stdio.h> # include <stdlib.h> # define MAX 100 //Funzione cerca int *cerca(int vettore[10], int elem, int dimensione,int*p) { int i, j = 0; for (i = 0; i < dimensione; i++) { //scorro il vettore if (vettore[i] == elem) { p[j] = i; j++; } } return(p); } int main() { //Dichiarazioni int vettore[MAX]; int i,*p; 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); } p = (int*)malloc(dimensione*sizeof(int)); //allocazione dell'array in modo dinamico la cui dimensione sarà uguale a vettore[10] nel caso limite in cui quest'ultimo contenga un solo numero if (p == NULL) { exit(1); } 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, elem, dimensione,p); printf("%d\n", risultato_ricerca); system("pause"); return(0); }![]()


Rispondi quotando