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

Programa conversão de decimal para octal


Robson88

Pergunta

Estou tentando fazer um código em c para converter de decimal para octal, ele só fica dando um erro de declaração errada mas não consigo achar alguém poderia me ajudar, segue o código.

#include <stdio.h>
int converteocta()/* Function to convert decimal to octal */

{
int resto[10],ent,i,cont;
i=0;
printf("Digite um numero decimal");
scanf("%d",&ent);

while(ent>=8)
{
resto=ent%8;
ent=ent/8;
i++;
}

resto=ent%8;
cont=i;

while(cont>=0)
{
printf("%d",resto[cont]);
cont--;

return 0;
}

int main()
{
converteocta();

return(0);
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

Olha como eu já mencionei em outros posts, sou iniciante em C e péssimo em matemática, então não espere muito.

Aqui apareceu os seguintes erro e alertas:

error: expected declaration or statement at end of input - este erro acontece porque você esqueceu uma chave de fechamento na linha 28.

warning: ‘main’ is normally a non-static function – este alerta não sei ainda muito bem o porquê, mas tenho certeza que estava relacionado com o fecha chaves do erro anterior uma vez que ele desapareceu.

warning: control reaches end of non-void function – este alerta ocorreu porque você esqueceu de por return 0; antes da chave de fechamento da sua função.

E ao tentar converter 1450 para octal deu 2 quando o correto seria 2652, ao que parece o programa parece estar funcionando apenas na primeira parte, retornando o primeiro digito da conversão neste caso 2, mas pode não estar exibindo os outros digitos ou simplesmente não estar convertendo o resto dos dígitos.

Só posso ir ate aqui, tente ver se consegue seguir a partir daqui . . .

Ubuntu 14.04 GNU GCC 4.8 Codeblocks 13.12

Espero ter Ajudado ! ! !

Oi só para atualizar, deixei passar batido o return 0; no seu codigo ele está dentro do seu while no final, parece que é isto que está causando o erro de conversão, o correto seria que esse return 0; estivesse entre as duas chaves de fechamento seguintes ao while:


}
   return 0;
}
int main()

Ao que parece isto faz com que a conversão funcione direitinho . . .

Valeu ! ! !

Editado por Felipe-Petrópolis
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...