/* File: chars2double.c */
/* Legge una sequenza di caratteri che rappresenta un reale e la
   traduce in un double */

#include <stdio.h>

int main(void)
{
  double ris;
  int grado;
  char ch;
  int chval;

  ris = 0;

  printf("Inserire una sequenza di caratteri che rappresenta un numero intero!\n");

  do scanf("%c", &ch);
  while ('0' > ch || ch > '9');
  
  while ('0' <= ch && ch <= '9') {
    chval = ch - '0';
    ris = 10*ris + chval;
    scanf("%c", &ch);
  }

  if (ch = '.') {

    grado = 0;
    scanf("%c", &ch);

    while ('0' <= ch && ch <= '9') {
      chval = ch - '0';
      ris = 10*ris + chval;
      scanf("%c", &ch);
      grado = grado + 1;
    }
    
    while (grado > 0) {
      ris = ris/10;
      grado = grado - 1;
    }
  }

  printf("Conversione effettuata: %g\n", ris);

  return 0;
}
