Salve a tutti!
Devo scrivere un algoritmo che mi risolva questo problema:
Sviluppare una function C che, dati come parametri di input un array di int e il suo size, determina e restituisce come parametro di output il secondo più grande elemento dell’array (N.B.: non bisogna seguire l’idea di ordinare prima l’array).
Ed io ho scritto questo:
#include <stdio.h>
#include <stdlib.h>
void legge_da_tastiera(int [], int);
int sec_max(int [], int);
int main()
{
int i,n,a[50],secondo_massimo;
printf ("Inserire la dimensione dell'array:");
scanf ("%d",&n);
printf ("Inserire la i valori dell'array:");
legge_da_tastiera(a, n);
secondo_massimo = sec_max(a,n);
printf ("Il secondo massimo dell'array:%d\n",secondo_massimo);
return 0;
}
int sec_max(int a[], int n)
{
int i, max, max_two;
max = a[0];
for(i=0; i<n; i++)
{
if(a[i] > max)
{
max_two = max;
max = a[i];
}
else if(a[i] > max_two)
{
max_two = a[i];
}
}
return max_two;
}
void legge_da_tastiera(int a[], int n)
{
int i;
for (i=0; i<n; i++)
scanf("%d", &a[i]);
}
Cos'ho sbagliato?