/******************************************************************************
Leggere un array a di 10 posizioni.
Memorizzare nell'array b il contenuto di a senza ripetizioni,
e nell'array c le frequenze dei valori di a memorizzati in b
(Si noti che b e c saranno quindi array paralleli
e probabilmente parzialmente riempiti)
Infine stampare per ogni valore di frequenza (da 1 fino alla frequenza massima)
i valori che in a avevano quella frequenza.
*******************************************************************************/
#include <iostream>
using namespace std;
int main()
{
int a[10];
for(int i=0;i<10;i++){cin>>a[i];}
int b[10]; //array senza ripetizioni
int c[10]; //array frequenze
int indiceriempimento=0;
//quanti valori ho inserito in b e cin
//ovvero la posizione della prima
// cella libera di b
for(int i=0;i<10;i++)
{
bool devoinserire=true;
//controllo se ho già inserito il valore
// presente in a[i] all'interno di b
for(int j=0;j<indiceriempimento;j++)
{
if(b[j]==a[i])
{
devoinserire=false;
c[j]++;
}
}
if(devoinserire==true)
{
b[indiceriempimento]=a[i];
c[indiceriempimento]=1;
indiceriempimento++;
}
}
//trovo la frequenza massima
// ovvero il valore massimo in c
int freqmax=0;
for(int i=0;i<indiceriempimento;i++)
{
if(c[i]>freqmax)
{freqmax=c[i];}
}
//stampiamo in ordine di frequenza
//per ogni valore di frequenza
for(int i=1;i<=freqmax;i++)
{
cout<<"i valori presenti in a ";
cout<<"con frequenza "<<i<<" sono: ";
for(int j=0;j<indiceriempimento;j++)
{
if(c[j]==i)
{
cout<<b[j]<<" ";
}
}
cout<<endl;
}
}