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:
case9<< 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!
AJUDA: TRABALHO PRATICO DE AEDS - LINGUAGEM C
em C, C++
Postado · Editado por Vinicius Marques
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:
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!