Sviluppare una function C che, dati come parametri di input un array di int, il suo size eun int k, determina e restituisce come parametro di output il k-imo pi`u grande elementodell’array (N.B.: l’array non deve essere ordinato).
ho gia visto una discussione aperta ma non specificaba che l'array non deve essere ordinato.
Questo sotto è un esercizio simile che chiedeva il secondo massimo. Diciamo che ho saltato il problema azzerando la casella in cui compariva il primo massimo. Vedendo questo di esercizio ho capito che in realtà ci deve per forza essere un'altra soluzione che non preveda azzerare il valore del vettore in quel punto. Vorrei qualche dritta su come poter modificare il codice o se bisogna riscriverlo.
int main()
{
int array[50],i,n,max;
printf("inserisci grandezza array:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("inserisci elemento %d:",i+1);
scanf("%d",&array[i]);
}
max=secondo_massimo(array,n);
printf("il secondo massimo e' %d",max);


return 0;
}
int secondo_massimo(int array[50],int n)
{
int i,indice_max,max=0,max_due=0;
max=array[0];
max_due=array[1];
indice_max=0;
for(i=1;i<n;i++)
{
if(max<array[i])
{
indice_max=i;


}
}
array[indice_max]=0;
for(i=0;i<n;i++)
{
if( max_due<array[i])
max_due=array[i];


}
return max_due;
}