A questão é descobrir o que esse programa faz??
Não consigo encontrar o erro dele…
já mudei tanta coisa mais não funciona, como não funciona, logo eu não sei o seu propósito.
me ajudem por favor
Obrigado!
#include<stdio.h>//Éumarquivocabeçalho,Bibliotecadeentradaesaída.#include<stdlib.h>//Éumarquivocabeçalho,Bibliotecadepropósitogeralpadrão.#defineMAX50//Declaraçãodaconstante.intmain(intargc,char*argv[]){//funçãomaineosparâmetros.intnum,aux_num;//Declaraçãodasvariáveisinteiro"nun"e"aux_num."intvet_bin[MAX];//vetordeMAXposiçõesparaguardaronúmeroembinário.inti=0,j;//declaraçãodavariáveliej,sendoqueirecebendo0.printf("Digite um numero em decimal:");//exibeumamensagemnatelasolicitandoquedigiteumnumeroscanf("%d",&num);//caputuraumnúmerointeirodigitadonotecladoearmazenaemvariável"nun".aux_num=num;//aux_munrecebe"nun".while(num>0)//Estruturaderepetiçãowhilecomacondição"num"maiorque"0".vet_bin[i]=num%2;//obtémorestodadivisãodenumpor2i++;//incrementa1paravariavel"i"num=num/2;//"num"recebe"nun dividido por 2"printf("%d = : ",aux_num);//Exiberesultadodeaux_num//percorreovetorparamostraronúmeroembinário.for(j=i-1;j>=0;j--) //"j" recebe "i" menos 1, compara se ele é maior ou igual a zero e decremento em j.printf("%d",vet_bin[j]);//exiberesultadovet_bin[j].Mudandoovalordevet_bin[]acadadecrementodej.printf("\n");//pulaumalinhaprintf("\n");//pulaumalinhagetch();//Esperaumateclaserdigitada.return0;//Retornazero.}
Olha eu tambem sou novo nisso e nao entendo muito nao. Mas percebi que vc tem um erro. Se vc for usar o getch adicione na library:
#include<conio.h>
O compilador nao mostrara o erro do catch, mas ainda n funciona o programa. Sorry.
Delthaisy
Obrigado pela ajuda…
adicionei a biblioteca mas o programa não funciona…
Interessante que não tem arquivo externo para essa linha a baixo
#defineMAX50
Max 50 é nativo??
rapaz já tentei de tudo… e olhe que eu não que só procuro ajuda nas ultimas… rsrs
Solucao aceita
TerraSkilll1 like
Qual o objetivo do exercício? É pra dizer o que falta pro programa funcionar ou é pra dizer o que o programa faz?
Dica: o programa precisa sim de um pequeno ajuste para funcionar, e o que ele faz está escrito nos comentários do código
Abraço.
Delthaisy
Fala TerraSkill,
Cara fiquei muito feliz com sua dica… vou fuça, gosto muito de programação mas meus conhecimento se resume com tags HTML e lógica de programação…
Delthaisy1 like
Resolvi Galera…quero só saber se estou certo…
o Programa faz: Converter decimal para binário
E estava faltando algo no comando while()…era deixar as instrução dele dentro chaves “{}”.
Bom quero saber se é isso mesmo, ou é alguma coincidência?
Obrigado!
A
anon629167171 like
Muito bom
[/quote]
Declaração de constante do tipo inteiro
Sim, esse foi o objetivo da codificação.
O algorítimo tem a função de representar um número com o seu correspondente binário.
O principal problema identificado foi o recuo confuso no while, assim foi necessário delimitar a instrução com { }, por isso estava entrando em loop.
Dei uma arrumada na codificação, para ficar mais apresentável.
#include<stdio.h>#include<stdlib.h>#include<conio.h>//faltavaestabiblioteca#defineMAX50//Declaraçãodaconstantedotipointeirointmain(){//inciointnum,aux_num=0;intvet_bin[MAX];//vetorcom50posiçõesinti=0,j;//variáveiiiniciaem0,ajnãofoiinicializadaprintf("Digite um numero em decimal:");scanf("%d",&num);//caputuraumnúmerointeirodigitadonotecladoearmazenaemvariável"num".printf("%d",num);aux_num=num;//aux_munrecebe"num".while(num>0){//enquantoavariávelnum>0repitavet_bin[i]=num%2;//ovetorébinariopoissoaceita0ou1,porserorestodadivisãoi++;//incrementonum=num/2;//emalgummomentonumseráiguala0,saindodolaço}printf("\n%d = : ",aux_num);//valorbinárioquenaofoialocadonovetorbinário,masfazpartedoresultado//percorrendoovetordetrazprafrente,lembrandoqueaúltimaposiçãoapenasindicaofimdovetorfor(j=i-1;j>=0;j--)printf("%d",vet_bin[j]);//mostrandoodadoarmazenadonovetorprintf("\n");//quebradelinhaforadoforprintf("\n");getch();//Esperaumateclaserdigitadaparasairdaaplicação.return0;//Retornazeroquandoaexecuçãofoibemsucedida.}
TerraSkilll
Isso mesmo!
As chaves costumam ser problema quando se esquece. Diria que é bom sempre adicionar, para evitar esquecer e ter problemas como esse, mesmo quando o laço tem uma linha só.
Abraço.
Delthaisy
Obrigado addller, explicou em miúdos!
Com todas essas explicações, me senti em uma sala de aula tirando todas as dúvidas com o professor…
Só reforça a minha tese que, somente a pratica trás a “perfeição”…
Obrigado!!!
Delthaisy
TerraSkilll
Sua dica de ouro aguçou a minha curiosidade em descobrir qual era o ajuste que faltava.
…
ficou muito claro que preciso de mais atenção no código fonte.