#+title: Curso Básico da Linguagem C
#+subtitle: Exercícios
#+author: Blau Araujo
#+startup: show2levels
#+options: toc:3

* Exercícios da aula 12: Leitura da entrada padrão com 'fgets'

- [[../../aulas/12-fgets/README.org][Anotações da aula]]
- [[https://youtu.be/ZZr9HBPo0Oc][Vídeo]]

** 1. Desafio: Fatorial de 'n'

Escreva um programa para calcular o fatorial de um número inteiro positivo
entre 1 e 20 recebido por digitação no terminal. Além da impressão do
resultado, o programa deve validar:

- Se a entrada digitada corresponde a um inteiro positivo;
- Se o número digitado está na faixa de valores esperado;
- Se existem outros caracteres além dos dígitos válidos.

#+begin_quote
O fatorial de um número é o produto de todos os números naturais menores ou
iguais a ele mesmo. Ex.: ~5! = 5 × 4 × 3 × 2 × 1 = 120~
#+end_quote

** 2. Desafio: Qual é o tipo?

Escreva um programa que peça um número qualquer ao usuário e imprima o tipo
adequando para o número digitado (se for um número válido). O programa deve
terminar com erro (e mensagem em =stderr=) se a string digitada não corresponder
a um valor numérico válido.

São representações numéricas válidas:

- Inteiros positivos e negativos em base 2, 8, 10 e 16;
- Números de ponto flutuante com ou sem notação científica;
- Caracteres alfanuméricos e de pontuação da tabela ASCII.

