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: /*
02: leggere da tastiera un numero intero non negativo tra 0 e 15 e
03: stampare la cifra esadecimale corrispondente
04: (calcolandola, non usando gli specificatori di formato %x o %X)
05:  Richiede l'uso del costrutto if()
06: */
07: 
08: #include<stdio.h>
09: #include<stdlib.h>
10: 
11: int main(int argc, char **argv){
12: 
13:   printf("Inserisci un numero decimale tra 0 e 15: "); // ci fidiamo dell'utente...
14:   int x;
15:   scanf("%d", &x);
16: 
17:   if( x < 10)
18:   {
19:     printf("La cifra esadecimale corrispondente a %d vale %d\n", x, x);
20:   }
21:   else
22:   {
23:     // mi calcolo il simbolo da stampare 
24:     char hex_digit = (x - 10) + 'A'; // f(x) tale che:  10 -> 'A', 11 -> 'B', ...
25:     printf("La cifra esadecimale corrispondente a %d vale %c\n", x, hex_digit);
26:     // a rigore una variabile non era  necessaria potevo fare tutto nella printf()
27:   }
28: 
29:   return 0;
30: }
31: 
32: