/*
 * Problema 16.  Escreva um programa que leia uma sequência de caracteres
 * terminada por '$' e que imprima se a sequência de caracteres
 * corresponde a um número inteiro ou não e, neste caso, qual número.
 * Exemplos:
 * 
 * Para a entrada "32456$" a saída deve ser "Integer 32456".
 * Para a entrada "-12345$" a saída deve ser "Integer -12345".
 * Para a entrada "123AB$" a saída deve ser "Not an integer".
 * Para a entrada "$" a saída deve ser "Not an integer".
 * Para a entrada "-$" a saída deve ser "Not an integer".
 * 
 * Extra: altere seu programa para permitir entradas da forma "+1234$" (a
 * saída deve ser "Integer 1234").
 */

#include <stdio.h>

#define TRUE 1
#define FALSE 0

int is_digit(char c);
int value(char c);

int main()
{
  char c;
  int N = 0, neg = 0;

  scanf("%c", &c);
  if (!is_digit(c)) {
    if (c == '-') {
      neg = TRUE;
      scanf("%c", &c);
    }
    else {
      printf("Not an integer\n");
      return 0;
    }
  }

  if (!is_digit(c)) {
    printf("Not an integer\n");
    return 0;
  }

  while (is_digit(c)) {
    N = 10*N + value(c);
    scanf("%c", &c);
  }

  if (c != '$') {
    printf("Not an integer\n");
    return 0;
  }

  if (neg) N = -N;
  printf("Integer %d\n", N);
  
  return 0;
}

int is_digit(char c)
{
  return '0' <= c && c <= '9';
}

int value(char c)
{
  return c - 48;
}














