Ritorna alla pagina del corso.

Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.

01: // 2. scrivere una funzione del tipo max(a,b) che restituisce il valore
02: // massimo tra a e b Implementare successivamente una seconda funzione
03: // che, sfruttando la precedente, restituisce il massimo tra 4 valori
04: 
05: #include<stdio.h>
06: #include<stdlib.h>
07: #include<time.h>
08: 
09: double max(double a, double b)
10: {
11:   // PRIMO MODO
12:   if(a > b)
13:     return a;
14:   else
15:     return b;
16: 
17:   // SECONDO APPROCCIO (l'else di fatto non serve)
18:   if(a > b)
19:     return a;
20:   return b;
21: 
22:   // TERZO APPROCCIO (if in linea)
23:   return (a > b)? a : b;
24: 
25: 
26: }
27: 
28: double  max4(double a, double b, double c, double d)
29: {
30:   return max(max(a, b), max(c, d));
31: }
32: 
33: int main(int argc, char **argv){
34: 
35:   srand(time(NULL));
36: 
37:   // genero 4 numeri a virgola mobile a caso
38:   double x[] = {rand()/3.14, rand()/3.14, rand()/3.14, rand()/3.14};
39: 
40:   printf("Il massimo tra i seguenti numeri: %g, %g, %g, %g e' %g\n", x[0], x[1], x[2], x[3], max4(x[0], x[1], x[2], x[3]) );
41: 
42:   return 0;
43: }
44: 
45: