/* File: duecifre.c */
/* Time-stamp: "2001-03-12 13:07:37 calvanes" */
/* Scopo: uso di if annidati e switch */

/* Input : numero intero di al piu` 2 cfre
   Output: pari pari        -->   cifra cifra
           dispari dispari  -->   lettere lettere
           pari dispari     -->   lettere cifra
           dispari pari     -->   cifra lettera
   N.B.: zero e` pari
*/

#include <stdio.h>

int main(void)
{
  int num = -1;           /* numero di due cifre letto da tastiera */
  int c0, c1;             /* cifre del numero letto */
  int dispari0, dispari1; /* booleani: indicano se ciascuna cifra e` dispari
                                       0 ... cifra e` pari
                                       1 ... cifra e` dispari */

  do {
    printf("INSERISCI UN NUMERO DI UNA O DUE CIFRE...\n"
           "...ATTENZIONE: loop infinito immettendo una lettera!!"
           "               [CTRL+PAUSA per finire]\n");
    scanf("%d", &num);
  } while (num < 0 || num >= 100);

  c0 = num % 10;
  c1 = num / 10;
  dispari0 = c0 % 2;
  dispari1 = c1 % 2;

  if (!dispari0 && !dispari1)                 /* entrambe le cifre sono pari */
    printf ("due cifre PARI ..... %d %d", c1, c0);
  else {
    if (dispari0 && dispari1) {            /* entrambe le cifre sono dispari */
      printf("due cifre DISPARI .....  ");
      switch (c1) {
      case 1: printf("uno"); break;
      case 3: printf("tre"); break;
      case 5: printf("cinque"); break;
      case 7: printf("sette"); break;
      case 9: printf("nove"); break;
      }
      switch (c0) {
      case 1: printf("  uno");	break;
      case 3: printf("  tre"); break;
      case 5: printf("  cinque"); break;
      case 7: printf("  sette"); break;
      case 9: printf("  nove"); break;
      }
    }
    else {                                  /* una cifra pari ed una dispari */
      printf("una cifra PARI ed una DISPARI .....  ");
      if (dispari1) {
          printf("%d  ", c1);
          switch (c0) {
          case 0: printf("zero"); break;
          case 2: printf("due"); break;
          case 4: printf("quattro"); break;
          case 6: printf("sei"); break;
          case 8: printf("otto"); break;
          }
      }
      else {
        switch (c1) {
        case 0: printf("zero"); break;
        case 2: printf("due"); break;
        case 4: printf("quattro"); break;
        case 6: printf("sei"); break;
        case 8: printf("otto"); break;
        }
        printf("  %d", c0);
      }
    }
  }
  printf("\n");

  return 0;
}