// massimoFunzionale1.c // ESERCIZIO: controllare il codice: sono presenti due errori // uno e' algoritmico, l'altro riguarda la composizione della FUNZIONE #include <stdio.h> #include <stdlib.h> #define LUN 3 int main() { int num; // dichiarazione delle variabili int i; int massimo; int numeri[LUN]; int calcolaMassimo(int numeri[]); // dichiarazione della funzione // solita immissione di un array for (i = 0; i < LUN; i = i + 1) { scanf("%d", &num); numeri[i] = num; } massimo = calcolaMassimo(numeri); printf("massimo=%d\n", massimo); fflush(stdin); getchar(); // non serve a nulla ma ferma la finestra... exit(0); } int calcolaMassimo(int numeri[]) { int massimo; int i; // vedo solo le variabili che vengono passate //e quelle dichiarate // quindi vedo e uso "massimo" e "i" // e l'indirizzo di dove inizia "numeri" // calcolo del massimo massimo = numeri[0]; for (i = 0; i < LUN; i = i + 1) // potrei partire anche da 1! Perche'? { if (massimo < numeri[i]) /* ERRORE ALGORITMICO: devo controllare se massimo e' minore (<) dei valori nel vettore numeri e non se e' uguale (==)! */ { massimo = numeri[i]; } } return massimo; /* ERRORE NELLA COMPOS. DI FUNZIONE: manca il return */ }