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: 792 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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 |
|
JavaScript - Como resolver uma equação do segundo grau em JavaScript - Como calcular Bhaskara em JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





