Salve a tutti, devo realizzare una funzione che stampa il secondo intero più piccolo nell'array. La funzione deve anche segnalare errore nel caso non ci siano almeno due elementi diversi all'interno dell'array.
Ho iniziato a svolgere la funzione riordinando l'array. Se gli interi sono diversi non ci sono problemi a stampare il secondo numero più piccolo perché basta stampare l'elemento di indice 1, ma come faccio a confrontarli e stampare il secondo più piccolo nel caso ci siano diversi elementi uguali?
Per adesso ho fatto così:
codice:void fun(int a[], int n) { int i, j; for (i=0; i<n; i++) { for (j=0; j<n-1-i; j++) { if (a[j]>a[j+1]) { int tmp; tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } for (int y=0; y<n; y++) { cout << a[y]; } cout << "\n"; for (int p=1; p<n; p++) { if (a[p]==a[p+1]) { cout << a[p+2]; } else if (a[p]!=a[p+1]) { cout << a[1]; } } }