Salve a tutti, sono nuovo del forum nonché neofita programmatore (si fa perdire _:P) in C.. Ciò che vorrei proporvi come argomento di discussione è questo: ho creato un programma che acquisisce un vettore di 10 elementi e che stampa a video il minimo, il massimo e la media.. Fin qui tutto ok. Ciò che non riesco a risolvere, invece, è il problema che mi crea il printf() che vorrei inserire in output_vet (per raggruppare tutti i printf() in un'unica sottofunzione) perché, come vedrete, la sottofunzione max_min ritorna due valori e non saprei come indicare all'output di stampare due valori diversi dalla stessa sottofunzione. Sarebbe meglio usare puntatori?
codice:#include <stdio.h> #include <conio.h> #define MAX 10 void input_vet (int v[], int dim); int max_min (int v[], int dim); float med (int v[], int dim); void output_vet (int v[]); main() { _ _ _int v[MAX]; _ _ _input_vet(v, MAX); _ _ _max_min(v, MAX); _ _ _med(v, MAX); _ _ _output_vet(v); } void input_vet(int v[], int dim) { _ _ _int i; _ _ _for(i=0;i<dim; i++) _ _ _{ _ _ _ _ _printf ("Elemento %d del vettore: ", i); _ _ _ _ _scanf ("%d", &v[i]); _ _ _} } int max_min (int v[], int dim) { _ _ int i, max, min; _ _ _max=min=v[0]; _ _ _for (i=0; i<dim; i++) _ _ _{ _ _ _ _ _ _if (v[i]>max) max=v[i]; _ _ _ _ _ _if (v[i]<min) min=v[i]; _ _ _} printf ("\nIl valore MASSIMO e': %d\n", max); _ _//Vorrei inserire questi due printf direttamente printf ("Il valore MINIMO e': %d\n", min); _ _ _ _ _//in output, ma come fare per tornare due valori? } float med (int v[], int dim) { _ _int i, somma=0; _ _float media; _ _for (i=0; i<dim; i++) _ _{ _ _ _ _somma+=v[i]; _ _} media=(float)somma/dim; return media; } // OUTPUT void output_vet (int v[]) { _ _ _printf ("Il valore della media e': %2.3f\n", med (v, MAX)); _ _ __getch(); }
Vi ringrazio in anticipo!

Rispondi quotando