È inutilmente inefficiente e complicato riordinare l'array (specie con il bubble sort), puoi fare tutto in una sola passata sull'array. Ragiona un po' su questo codice:
codice:void fun(int a[], int n) { if (n==0) { cout<<"array vuoto!\n"; return; } int f=a[0], s=a[0]; for(int i=0; i<n; ++i) { if(a[i]<f) { s=f; f=a[i] } else if(a[i]<s && a[i]!=f) { s=a[i]; } } if(f==s) { cout<<"non ci sono due elementi distinti"; } else { cout<<s; } }