Jump to content
Fórum Script Brasil
  • 0

Programa conversão de decimal para octal


Robson88
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 ! ! !

Edited by Felipe-Petrópolis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...