/******************************************************************************
ES 18
Leggere un array di interi di 10 posizioni e stampare il numero che compare
più volte all'interno dell'array, qualora ci siano più numeri che compaiano
lo stesso numero stampare il maggiore tra i due.
https://wordpress.com/post/ticoprof.wordpress.com/344
*******************************************************************************/
#include <iostream>
using namespace std;
int main()
{
int a[10];
int maggiore;
int nvmaggiore;
int attuale;
int nvolteattuale;
cout<<"inserisci 10 numeri interi"<<endl;
for(int i=0;i<10;i++)
{
cin>>a[i];
}
maggiore=a[0];
nvmaggiore=1;
for(int i=0;i<10;i++)
{
attuale=a[i];
nvolteattuale=1;
for(int j=i+1;j<10;j++) //qui si sarebbe potuto anche partire da j=0
{
if(a[i]==a[j]){nvolteattuale++;}
}
if(nvolteattuale>nvmaggiore)
{
maggiore=attuale;
nvmaggiore=nvolteattuale;
}
if(nvolteattuale==nvmaggiore)
{
if(attuale>maggiore)
{
maggiore=attuale;
nvmaggiore=nvolteattuale;
}
}
}
cout<<"il numero che compare piu' volte e' "<<maggiore;
cout<< "e compare "<<nvmaggiore<<" volte";
return 0;
}