Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Como converter de decimal para números romanos em C - Desafio de Programação Resolvido em CQuantidade de visualizações: 570 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int numero, i; char resultado[80] = ""; // para guardar o resultado setlocale(LC_ALL,""); // para acentos do português // vamos criar um array com os valores decimais possíveis de // cada número romano int valores_numeros_romanos[13] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; // representação dos números romanos char numeros_romanos[13][3] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; // vamos pedir para o usuário informar um número decimal printf("Informe um número decimal: "); scanf("%d", &numero); // o número é maior que zero? if (numero > 0) { // percorremos o array de valores decimais dos números romanos for(i = 0; i < 13; i++){ // enquanto o número informado for maior que o valor do // do número romano atual while(numero >= valores_numeros_romanos[i]){ // reduz o número informado numero = numero - valores_numeros_romanos[i]; // concatena o número romano e continua o cálculo strcat(resultado, numeros_romanos[i]); } } } // mostramos o resultado if(strcmp(resultado, "") == 0){ printf("O número informado não possui número romano"); } else{ printf("O número romano correspondente é: %s", resultado); } printf("\n\n"); system("PAUSE"); return 0; } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Java - Estruturas de Dados em Java - Como obter o nó com menor valor em uma árvore binária de busca em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |