Ir para conteúdo
Fórum Script Brasil

Vinicius Marques

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Vinicius Marques

  1. Tenho um trabalho pratico na faculdade valendo 10 pontos. O professor quer que façamos um programa que transforme algarismos em um numero escrito por extenso. 

    Ex:

    1 um 

    2 dois...

    102 cento e dois...

    E esse programa precisa realizar essa função até a centena de milhão. Cheguei a fazer a codificação baseada em switch/case. Mas estou tendo dificuldades para reproduzir a conjunção "e" no meio da numeração extensa, já que em certas situações a numeração não cabe a conjunção.

    Durante a compilação: "cento noventa dois milhoes novecentos quarenta sete mil trezentos doze"

    Como deve ficar: "cento e noventa e dois milhoes novecentos e quarenta e sete mil trezentos e doze"

    Seria muito fácil colocar tipo:

    case 9 << cout "cento e ";break; 

    mas, o problema é que há condicionantes, e não estou conseguindo trabalhar com a estrutura de decisão if/else. 

    O problema também acontece quando há uso de dígitos 0, pois não soube declarar que o sistema deve optar por imprimir "cem" no lugar de "cento"

     

    Segue o código que estruturei, se alguém puder, por favor revisar meu código ou me dar uma breve explicação do que fazer para resolver isso. Ficarei muito grato!

     

    #include <iostream>
    using namespace std;
    
    int main ()
    
    {
        int cM,dM, uM, cm, dm, um, c, d, u;
        cin >> cM >> dM >> uM>> cm >> dm >> um >> c >> d >> u;
    
        switch (cM)
        {
            case 9: cout << "novecentos ";break;
            case 8: cout << "oitocentos ";break;
            case 7: cout << "setecentos ";break;
            case 6: cout << "seiscentos ";break;
            case 5: cout << "quinhentos ";break;
            case 4: cout << "quatrocentos ";break;
            case 3: cout << "trezentos ";break;
            case 2: cout << "duzentos "; break;
            case 1: cout << "cento "; break;
        }
        switch (dM)
            {
            case 9: cout << "noventa ";break;
            case 8: cout << "oitenta ";break;
            case 7: cout << "setenta ";break;
            case 6: cout << "sessenta ";break;
            case 5: cout << "cinquenta ";break;
            case 4: cout << "quarenta ";break;
            case 3: cout << "trinta ";break;
            case 2: cout << "vinte "; break;
    
    
            if (dm=1)
            case 1:
              switch (um)
            {
            case 9: cout << "dezenove mil ";break;
            case 8: cout << "dezoito mil ";break;
            case 7: cout << "dezesete mil ";break;
            case 6: cout << "dezeseis mil ";break;
            case 5: cout << "quinze mil ";break;
            case 4: cout << "quatorze mil ";break;
            case 3: cout << "treze mil ";break;
            case 2: cout << "doze mil "; break;
            case 1: cout << "onze mil ";break;
            }
            }
    
        if (dM!=1)
        switch (uM)
            {
            case 9: cout << "nove milhoes ";break;
            case 8: cout << "oito milhoes ";break;
            case 7: cout << "sete milhoes ";break;
            case 6: cout << "seis milhoes ";break;
            case 5: cout << "cinco milhoes ";break;
            case 4: cout << "quatro milhoes ";break;
            case 3: cout << "tres milhoes ";break;
            case 2: cout << "dois milhoes "; break;
            case 1: cout << "um milhoes ";break;
    
        }
    
        switch (cm)
        {
            case 9: cout << "novecentos ";break;
            case 8: cout << "oitocentos ";break;
            case 7: cout << "setecentos ";break;
            case 6: cout << "seiscentos ";break;
            case 5: cout << "quinhentos ";break;
            case 4: cout << "quatrocentos ";break;
            case 3: cout << "trezentos ";break;
            case 2: cout << "duzentos "; break;
            case 1: cout << "cento "; break;
        }
        switch (dm)
            {
            case 9: cout << "noventa ";break;
            case 8: cout << "oitenta ";break;
            case 7: cout << "setenta ";break;
            case 6: cout << "sessenta ";break;
            case 5: cout << "cinquenta ";break;
            case 4: cout << "quarenta ";break;
            case 3: cout << "trinta ";break;
            case 2: cout << "vinte "; break;
    
    
            if (dm=1)
            case 1:
              switch (um)
            {
            case 9: cout << "dezenove mil ";break;
            case 8: cout << "dezoito mil ";break;
            case 7: cout << "dezesete mil ";break;
            case 6: cout << "dezeseis mil ";break;
            case 5: cout << "quinze mil ";break;
            case 4: cout << "quatorze mil ";break;
            case 3: cout << "treze mil ";break;
            case 2: cout << "doze mil "; break;
            case 1: cout << "onze mil ";break;
            }
            }
    
        if (dm!=1)
        switch (um)
            {
            case 9: cout << "nove mil ";break;
            case 8: cout << "oito mil ";break;
            case 7: cout << "sete mil ";break;
            case 6: cout << "seis mil ";break;
            case 5: cout << "cinco mil ";break;
            case 4: cout << "quatro mil ";break;
            case 3: cout << "tres mil ";break;
            case 2: cout << "dois mil "; break;
            case 1: cout << "um mil ";break;
    
        }
    
        switch (c)
        {
            case 9: cout << "novecentos ";break;
            case 8: cout << "oitocentos ";break;
            case 7: cout << "setecentos ";break;
            case 6: cout << "seiscentos ";break;
            case 5: cout << "quinhentos ";break;
            case 4: cout << "quatrocentos ";break;
            case 3: cout << "trezentos ";break;
            case 2: cout << "duzentos "; break;
            case 1: cout << "cento "; break;
        }
        switch (d)
            {
            case 9: cout << "noventa ";break;
            case 8: cout << "oitenta ";break;
            case 7: cout << "setenta ";break;
            case 6: cout << "sessenta ";break;
            case 5: cout << "cinquenta ";break;
            case 4: cout << "quarenta ";break;
            case 3: cout << "trinta ";break;
            case 2: cout << "vinte "; break;
    
    
            if (d=1)
            case 1:
              switch (u)
            {
            case 9: cout << "dezenove";break;
            case 8: cout << "dezoito";break;
            case 7: cout << "dezesete";break;
            case 6: cout << "dezeseis";break;
            case 5: cout << "quinze";break;
            case 4: cout << "quatorze";break;
            case 3: cout << "treze";break;
            case 2: cout << "doze"; break;
            case 1: cout << "onze";break;
            }
            }
    
        if (d!=1)
        switch (u)
            {
            case 9: cout << "nove";break;
            case 8: cout << "oito";break;
            case 7: cout << "sete";break;
            case 6: cout << "seis";break;
            case 5: cout << "cinco";break;
            case 4: cout << "quatro";break;
            case 3: cout << "tres";break;
            case 2: cout << "dois"; break;
            case 1: cout << "um";break;
    
        }
    
            }

     

×
×
  • Criar Novo...