/* File: ordina3.c  */
/* Scopo: semplici funzioni con vettori */
   
#include <stdio.h>


void LeggiVettore(float [], int);
void StampaVettore(float [], int);
void OrdinaVettore(float []);
void ScambiaElementi(float *, float *);


int main(void)
{
  float vett[3];
	
  LeggiVettore(vett, 3);
  printf("\nVettore prima dell'ordinamento\n");
  StampaVettore(vett, 3);
  OrdinaVettore(vett);
  printf("\nVettore dopo l'ordinamento\n");
  StampaVettore(vett, 3);

  return 0;
}


void LeggiVettore(float v[], int size)
{
  int i;
	
  printf ("Inserire tre numeri reali: ");
  for (i=0; i<=size-1; i++)
    scanf("%f", &v[i]);
}


void StampaVettore(float v[], int size)
{
  int i;
	
  printf ("%s\t%s\n", "elemento", "valore");
  for (i=0; i<=size-1; i++)
    printf("%4d\t%10.2f\n", i, v[i]);
}


void OrdinaVettore(float v[])
{
  if (v[0] > v[1])
    ScambiaElementi(&v[0], &v[1]);
  if (v[0] > v[2])
    ScambiaElementi(&v[0], &v[2]);
  if (v[1] > v[2])
    ScambiaElementi(&v[1], &v[2]);
}


void ScambiaElementi (float *p1, float *p2)
{	
  float appoggio;
		
  appoggio = *p1;
  *p1 = *p2;
  *p2 = appoggio;
}