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

h_r

Pergunta

Oi pessoal, sou novo aqui no fórum e queria saber do que vocês acharam desse código-fonte que converte números decimais em números binários
#include <stdio.h>
#include <stdlib.h>
int program()
{
int a,b,c,d,i,z;
int s_0[16];
int def_0, def_1;
int v_d = 0;
int v_d1 = 1;
int var_p;
for(z = 0; z < 16; z++)
s_0[z] = 0;
if(v_d1 == 1)
{
printf("Digite um numero a ser convertido:\n");
scanf("%d", &a);
b = a/2;
c = b*2;
d = a-c;
s_0[16] = d;
while ( b > 0)
{
if(v_d == 0)
{
def_0 = 15;
}
i = b;
b = b/2;
c = b*2;
d = i-c;
s_0[def_0] = d;
def_0--;
v_d++;
}
printf("resultado: \n");
for(var_p = 1; var_p <= 16; var_p++)
{
printf("%d", s_0[var_p]);
}
printf("\n");
}
}
int main()
{
int pa;
int internal_error = 0;
char help[20] = "ajuda";
char conversor[20] = "conversor";
char sair[20] = "sair";
char ler[20];
comparations:
{
printf("funcao: ");
scanf("%s", &ler);
///////////
if(strcmp(ler, conversor) == 0)
{
{
program();
}
goto comparations;
}
if(strcmp(ler, help) == 0)
{
printf("convertor: converte numeros decimais em binario\nquit: finaliza o programa\n");
}
else
{
if(strcmp(ler, sair) == 0)
{
return; //terminará o programa
}
printf("Esta funcao não e reconhecida, digite help para mais informacoes\n");
goto comparations;
}
}
goto comparations;
}
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Muito bom. Seu programa funciona corretamente.

Mas, aconselho fortemente em não usar "goto". Seu uso costuma ser abolido dos códigos, porque permite quebrar a estrutura lógica.

Fiz uns ajustes em seu código, e uma delas foi trocar o "goto" por "while()".

Segue código para fim comparativo:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void program(void)
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int i = 0;
    int s_0[16] = {0};
    int def_0 = 15;
    int var_p = 0;
 
    printf("Digite um numero a ser convertido:\n");
    scanf("%d", &a);
 
    b = a / 2;
    c = b * 2;
    d = a - c;
    s_0[def_0--] = d;
 
    while ( b > 0)
    {
        i = b;
        b = b / 2;
        c = b * 2;
        d = i - c;
        s_0[def_0--] = d;
   }
 
    printf("resultado: \n");
    for( ; var_p < 16; var_p++ )
        printf("%d", s_0[var_p] );
 
    printf("\n");
 
}
 
int main(void)
{
    char help[20] = "ajuda";
    char conversor[20] = "conversor";
    char sair[20] = "sair";
    char ler[20] = {'\0'};
 
    while( strcmp( ler, sair ) )
    {
        printf("Escolha uma funcao:\n%s\n%s\n%s\n\n\n", conversor, help, sair);
        scanf(" %s", ler);
 
        if( strcmp(ler, sair) )
        {
            if( !strcmp(ler, conversor) )
            {
                program();
                printf("\n\n\n");
            }
            else if( !strcmp(ler, help) )
                printf("convertor: converte numeros decimais em binario\nquit: finaliza o programa\n");
            else
                printf("Esta funcao não e reconhecida, digite help para mais informacoes\n");
        }
    }
 
    return 0;
}
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,3k
×
×
  • Criar Novo...