#include <stdio.h>
#include <stdlib.h>

void Divers(int w[], int u); 
void Media(int f[], int r);
void BubbleSort(int a[],int b);
void printVet(int z[],int y);

int main()
{int a,b,c,d;
int s;
int vet[500];
int i;

// azzeratore //
b=0;
c=0;
a=1;

// comandi per l'utente //
printf("Inserire i numeri del vettore lasciando uno spazio tra uno e l'alro\n");
printf("Termina l'immissione dei numeri inserendo -1\n");

// ciclo di lettura e riscrittura ordinata del vettore //
while(a!=-1)
{
scanf("%d",&a);
if(a==-1)
{
continue;
}
vet[b]=a;
b++;
c++;
}

printf("\n\nIl vettore scritto e' il seguente\n");
for(d=0; d<c; d++)
{
printf("%d ", vet[d]);
}
printf("\n");


// richiamo funzioni Bubble sort e printVet //
BubbleSort(vet,b);
printf("\nIl vettore ordinato in ordine crescente\n");
printVet(vet,b);
printf("\n\nil numero dei componenti del vettore e': %d", b);
Media(vet,b);
Divers(vet,b);
printf("\n\n\n");


system("PAUSE");
return 0;
}

// -------------------zona function------------------- //
// Funzione BubbelSort //
void BubbleSort(int a[],int b)
{
int pass, j, hold, s;

hold=0;

for(pass=0;pass<b;pass++)
{
for(j=0;j<b-1;j++)
{
if(a[j]>a[j+1])
{
hold=a[j];
a[j]=a[j+1];
a[j+1]=hold;
}
}
}
}     
// Funzione printVet //
void printVet(int vet[],int y)
{
int s;

for(s=0;s<y;s++)
{
printf("%d ",vet[s]);
}
}
// Funzione Media //
void Media(int f[], int r)
{
int h;
double risultato;

risultato=0;

for(h=0;h<r;h++)
{
risultato=risultato+f[h];
}

printf("\n\nla media e': %.2f", risultato/r);
}
// Funzione divers //
void Divers(int w[], int u)
{
int cxx[u];
int t,i,j,r,h,z;
int wet[u];

i=0;
r=0;

for(t=0;t<u;t++)
{
if(w[t]!=w[t+1])
{
cxx[i]=w[t];
i++;
}
}
printf("\n\nil numero degli elementi diversi e': %d", i);
printf("\n\nGli elementi ripetuti nul vettore sono   ");
for(j=0;j<i;j++)
{
printf("%d ", cxx[j]);
}
// ----------Zona frequenza------------- //

for(h=0;h<i;h++)
{
wet[h]=0;
}

for(h=0;h<i;h++)
{
for(z=0;z<u;z++)
{
if(cxx[h]==w[z])
{
++wet[h];
}
}
}
printf("\n\nElemento       Frequenza");
for(h=0;h<i;h++)
{
printf("\n %d              %d", cxx[h], wet[h]);
}

}
