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!