Faça um programa que receba um número em decimal e imprima o correspondente em hexa e octal (faça isso usando parâmetros do printf).

Passo 1

Beleza, vamos por partes. O enunciado pede um programinha em C que receba um número em decimal e mostre esse mesmo número em héxadecimal e octal, usando os “parâmetros do printf” (ou seja, os especificadores de formatação).
Conteúdo: programação em C básico – leitura de variável com scanf, impressão com printf e uso dos conversores de base (%o para octal e %x para hex).
O que vamos precisar:
  1. Declarar uma variável inteira para guardar o número.
  2. Usar scanf para ler o valor em decimal.
  3. Usar printf com os especificadores corretos para imprimir em octal e em hex.

Passo 2

Primeiro a gente cria a variável e lê o valor em decimal.
Em C, pra ler uma variável você usa:
scanf("%d", &num);
– O %d diz “vou ler um inteiro decimal”
– O &num passa o endereço de memória da variável pra função scanf guardar lá o valor que o usuário digitar.
Como a gente não assume que você já sabe tudo, lembra: toda vez que você usar scanf, coloca o & na frente da variável (menos se for string).

Passo 3

Agora vem a mágica do printf: ele troca o número da variável pra outras bases automaticamente, dependendo do especificador.
  • Para octal, usamos %o.
  • Para hexadecimal, usamos %x (ou %X se quiser as letras A-F maiúsculas).
    Por exemplo:
printf("Octal: %o\n", num);
printf("Hexadecimal: %x\n", num);
O printf vai pegar o valor decimal em num, converter pra base 8 (octal) ou base 16 (hex), montar a string e mostrar na tela. Você não precisa implementar nenhuma lógica de divisão ou módulo manualmente.

Passo 4

Vamos juntar tudo dentro de um main. Lembre de incluir a biblioteca <stdio.h> pra usar scanf/printf e retornar zero no final. Fica assim:

Resposta

#include <stdio.h>

int main() {
    int num;

    // Lê um número decimal
    printf("Digite um número em decimal: ");
    scanf("%d", &num);

    // Imprime em octal e em hexadecimal
    printf("Octal: %o\n", num);
    printf("Hexadecimal: %x\n", num);

    return 0;
}
Explicando rápido:
  1. #include <stdio.h> traz as funções de entrada/saída.
  2. scanf("%d", &num); lê o decimal.
  3. printf("Octal: %o\n", num); e printf("Hexadecimal: %x\n", num); fazem a conversão automática de base e exibem o resultado.
    Pronto!

Exercícios relacionados