Salve,
ecco il testo dell'esercizietto:
"Data una main che contiene un vettore di interi definito come
int v1[10]={2,4,11,6,17,1,24,4,45,3} , creare una funzione che crea un Vettore v2, che contiene solo gli elementi di v1 maggiori di 5, e lo restituisce al main."
io ho risolto come segue:
ma non son ben certo, in effetti forse elabora non doveva avere come parametri v2, ma creare v2 stesso (meglio con allocazione dinamica o statica?) . In ogni caso se creo v2 con elabora, nella main devo sempre dichiarare un vettore v2 giusto?codice:#include <stdio.h> #include <stdlib.h> int* elabora(int v1[],int v2[]); int main() { int v1[10]={2,4,11,6,17,1,24,4,45,3}; int v2[10]; int i=0; int *p; p=elabora(v1,v2); for (i=0;i<10;i++) printf("%d ",p[i]); system("PAUSE"); return 0; } int* elabora(int v1[],int v2[]) { int *w; w=v2; int i,k=0; for (i=0;i<10;i++) if(v1[i]>5) { v2[k]=v1[i]; k++; } return w; }
Qual'è il modo più corretto per risolvere l'esercizio?
Grazie

Rispondi quotando