Ir para conteúdo
Fórum Script Brasil
  • 0

Uma Dúvida Em Um Programa


Guest - Lucas -

Pergunta

Guest - Lucas -

Eu tenho o seguinte código, que me retorna um número inserido por extenso:

"#include <stdio.h>

# include <stdlib.h>

# include <string.h>

int extenso(int x){

char unidades[] = {'zero', 'um', 'dois', 'tres', 'quatro', 'cinco', 'seis', 'sete','oito', 'nove'};

char ate19[]={'dez', 'onze', 'doze', 'treze', 'quatorze', 'quinze','dezesseis', 'dezessete', 'dezoito', 'dezenove' };

char dezenas[] ={'dez', 'vinte', 'trinta', 'quarenta', 'cinquenta', 'sessenta', 'setenta','oitenta', 'noventa'};

char centenas[]= {'cem', 'cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhentos','seiscentos', 'setecentos', 'oitocentos', 'novecentos'};

char milhares[] ={'mil', 'milhao', 'bilhao', 'trilhao'};

if (x < 10)

printf("%s",unidades[x]);

if (x < 20)

printf("%s", ate19[x - 10]);

if (x < 100) {

if (x % 10 == 0)

return dezenas[x / 10];

else

printf("%s e %s"), dezenas[x / 10], unidades[x % 10];

}

if (x < 1000) {

if (x % 100 == 0)

return centenas[x / 100];

else

printf("%s %s %s", unidades[x / 100], centenas[1], extenso(x % 100));

}

if (x < 1000000) {

if (x % 1000 == 0)

printf("%s e %s", extenso(x / 1000), milhares[0]);

else

printf("%s %s %s", extenso(x / 1000), milhares[0],extenso(x % 1000));

}

if (x < 1000000000) {

if (x % 1000000 == 0)

printf("%s %s", extenso(x / 1000000), milhares[1]);

else

printf("%s %s %s", extenso(x / 1000000), milhares[1], extenso(x % 1000000));

}

}

int main(void){

int numero;

scanf("%d", & numero);

extenso(numero);

system("PAUSE");

}

"

Alguém poderia me dar uma ajudinha nesse código, é questão de vida ou morte!!!! :huh:

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

É que dá alguns erros... Se existe algum código um pouco mais esperto ou fácil de se fazer isso, etc... É que eu preciso disso com urgência, é um trabalho da facu e se eu não entregar, vou fazer essa matéria pela 5ª vez, hehehe...

Abraço e valeu!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

É que dá alguns erros... Se existe algum código um pouco mais esperto ou fácil de se fazer isso, etc... É que eu preciso disso com urgência, é um trabalho da facu e se eu não entregar, vou fazer essa matéria pela 5ª vez, hehehe...

Abraço e valeu!

Principalmente na declaração dos vetores de strings, aí é que eu não tou conseguindo fazer funcionar... E se você achar algum erro, me dá um tok, cara, por favor!

Abç!

Link para o comentário
Compartilhar em outros sites

  • 0

Primeiro.. substitua as aspas simples por aspas duplas das suas strings..

E inicializa as strings assim:

char milhares[][8] ={"mil", "milhao", "bilhao", "trilhao"};

Porquê esse array é bidimensional... O primeiro pode deixar em branco porquê o compilador verifica esse limite, mas o segundo tem que colocar com as letras das strings.. o maior número possível entende ? (Incluindo o terminador nulo que C inclui no fim da string). Se não quiser entender... bota 15 em todos que vai passar...

O seu 'include' ... os 2 últimos includes estão separados do '#' ... junte-os.

scanf("%d", & numero);

Essa linha aí... junte o '&' com o 'numero'... isso vai passar o endereço da variável para o scanf poder acessá-la com um ponteiro.

O valor 'return' da sua função 'extenso' ... tem que ser do tipo int (você declarou isso na função) e você está retornando um valor char. Nada que um casting não resolva... ficaria assim:

return int(dezenas[x / 10]);

Acho que erros sintáticos só tem esses.... não sei como está a lógica do seu programa.. não li 'a fundo'....

Ahn.. e uma dica... se essa matéria é a 5º vez que você repete, talvez não esteja no curso certo. ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...