Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char NumRoma[10];//Variavel que receberá os caracteres Romanos int i, convert[500], NumArab=0, retorno=0; int contI=0, contV=0,contX=0,contL=0,contC=0, contD=0, contM=0;//contadores para caracteres da string printf("\n OBSERVACAO: Digite em Maiusculo os Numeros: I, V, X, L, C, D, M"); printf("\n Digite um Numero Romano: "); scanf("%s",NumRoma); for (i=0; i<strlen(NumRoma); i++){//strlen: retorna o comprimento da string fornecida switch (NumRoma[i]){ case 'I': convert[i] = 1; contI++;//Converte I para 1 e conta quantas vezes I aparece na string break; case 'V': convert[i] = 5; contV++;//Converte V para 5 e conta quantas vezes V aparece na string break; case 'X': convert[i] = 10; contX++;//Converte X para 10 e conta quantas vezes X aparece na string break; case 'L': convert[i] = 50; contL++;//Converte L para 50 e conta quantas vezes L aparece na string break; case 'C': convert[i] = 100; contC++;//Converte C para 100 e conta quantas vezes C aparece na string break; case 'D': convert[i] = 500; contD++;//Converte D para 500 e conta quantas vezes D aparece na string break; case 'M': convert[i] = 1000; contM++;//Converte M para 1000 e conta quantas vezes M aparece na string break; default: printf("\nNumero Invalido!");//Mensagem para entradas diferentes de I, V, X, L, C, D, M retorno++;//Contador para não mostrar a mensagem dos valores convertidos break; system("pause>NULL"); } } for (i=0; i<strlen(NumRoma); i++){ if (convert[i] < convert[i+1])//Verifica se o 1º numero é MENOR que o posterior //Ex.:'NumRoma'=IV, I=1 e V=5, então 'NumArab' = 5-1 = 4 NumArab = NumArab - convert[i]; else//Caso o 1º numero seja MAIOR que o antecessor //Ex.: 'NumRoma'=VI, V=5 e I=1, então 'NumArab' = 5+1 = 6 NumArab = convert[i] + NumArab; } //Condições para que o Numero Romano seja Invalido if (contI > 3 || contV >= 2 || contX > 3 || contL >= 2 || contC > 3 || contD >=2 || contM > 3){ printf("\nNumero Invalido!"); } //Condições para que o Numero Romano seja Valido if (retorno == 0 && contI < 4 && contV < 2 && contX < 4 && contL < 2 && contC < 4 && contD < 2 && contM < 4){ printf("\nO NUMERO ROMANO Digitado: %s\n", NumRoma);//Exibi o Numero de Entrada printf("\nO Equivalente em ARABICO: %d",NumArab);// Exibi o Numero Convertido para ARABICO } system("PAUSE>NULL"); return 0; }
Compartilhar