Buscar

Grupo Alfanumerico - Letra D

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;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando