Fácil C

Classificação de idade

Enunciado

Escreva um programa que leia uma idade inteira e use if/else if/else para imprimir:

  • "Crianca" se idade < 12
  • "Adolescente" se 12 <= idade < 18
  • "Adulto" se idade >= 18

Requisitos

  • Usar if, else if e else.
  • Ler um inteiro do usuário.
  • Imprimir exatamente uma das três palavras.

Código inicial

#include <stdio.h>

int main(void) {
    int idade;
    scanf("%d", &idade);
    // complete com if/else if/else
    return 0;
}

Saída esperada

Adulto
Ver dica

Use scanf para ler a idade e compare com os limites usando && para intervalos.

Mostrar solução
#include <stdio.h>

int main(void) {
    int idade;
    scanf("%d", &idade);

    if (idade < 12) {
        printf("Crianca\n");
    } else if (idade < 18) {
        printf("Adolescente\n");
    } else {
        printf("Adulto\n");
    }

    return 0;
}

Passo a passo

  1. Incluímos <stdio.h> para usar printf e scanf.
  2. Declaramos int idade para armazenar o valor lido.
  3. scanf("%d", &idade) lê um inteiro do teclado.
  4. O primeiro if verifica se idade < 12; se verdadeiro, imprime "Crianca".
  5. O else if só é testado se o primeiro falhar; verifica idade < 18 (como já sabemos que idade >= 12, cobre 12 a 17).
  6. O else final cobre todos os casos restantes (idade >= 18).
  7. return 0 indica que o programa terminou com sucesso.

Por que funciona

A estrutura if/else if/else garante que apenas um bloco seja executado. As condições são avaliadas em ordem, e a primeira verdadeira executa seu bloco, ignorando os demais. Isso implementa uma decisão exclusiva.

Erros comuns

  • Esquecer o & no scanf: scanf("%d", idade); causa comportamento indefinido (provavelmente erro de segmentação).
  • Usar = em vez de == na condição: if (idade = 12) atribui 12 e sempre é verdadeiro (a menos que 12 seja falso).
  • Não tratar todos os intervalos: se usar apenas if (idade < 12) e if (idade >= 18), idades entre 12 e 17 não imprimem nada.

Outra forma de resolver

Usar switch com divisão por faixas, mas é menos legível para intervalos. O if encadeado é mais claro.

Saída esperada

Adulto