h_r Postado Julho 11, 2014 Denunciar Share Postado Julho 11, 2014 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ScreenBlack Postado Julho 11, 2014 Denunciar Share Postado Julho 11, 2014 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 h_r Postado Julho 12, 2014 Autor Denunciar Share Postado Julho 12, 2014 valeu amigão! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 h_r Postado Julho 12, 2014 Autor Denunciar Share Postado Julho 12, 2014 ou amiga não sei rsrs... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
h_r
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.