Tempter 0 Denunciar post Postado Agosto 31, 2005 To com o seguinte problema pessoal, tentando converter números decimais para binário eu recebo a seguinte msg: Cannot convert 'int *' to 'int' o código é /*====== BINARIO =======*/#include <conio.h>#include <stdio.h>int binario (int numero);int main(){ int numero; clrscr(); printf("Digite um numero = "); scanf("%d",& numero); printf("\nO binario deste numero e %d", binario(numero)); getch(); return (0);}int binario (int numero){ int i=0, bin[100]; while (numero > 1) { if( (numero % 2) == 0) { bin[i] = 0; } // o erro aparece aqui else { bin[i] = 1; } numero = numero / 2; i++; } return (bin);} Alguem sabe me dizer o que está errado ? Se alguem puder me explicar como fazer um programa com esta funcionalidade que eu preciso eu agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Guybrush 0 Denunciar post Postado Setembro 1, 2005 scanf("%d",& numero); voce colocou um esoaço no & numero scanf("%d",&numero); Compartilhar este post Link para o post Compartilhar em outros sites
Tempter 0 Denunciar post Postado Setembro 1, 2005 Poxa cara eu deixei sem o espaço e o erro ainda é o memso. Aliás, nos meus outros códigos eu fiz com espaço entre a variável e o & e nunca tive problemas.Continuo recebendo a msg: Invalid Indirection pra linha 29 e a 30. o que será que pode ser? passei a manhã toda tentando resolver...Brigadão pela ajuda heim. Compartilhar este post Link para o post Compartilhar em outros sites
Guybrush 0 Denunciar post Postado Setembro 1, 2005 estou no serviço e nao tenho compilador akkimas...tente não usar a mesma variavel numeroint main(){int numero;clrscr();int binario (int numero) use int binario (int valor)usa return variavel; sem os ()talvez seja só sintaxeflw Compartilhar este post Link para o post Compartilhar em outros sites
RenatoMejias 1 Denunciar post Postado Setembro 4, 2005 Então Tempter, eu não cheguei a ler seu fonte. Mas uma vez eu fiz um programa que fazia isso, ele está em C, mas é super facil de entender. Da uma olhadinha na lógica e depois usa a lógica para o seu programa. FALOU... void binario();main() { int num; clrscr(); printf("Entre com o valor: "); scanf("%d",&num); printf("\n"); while(num<0) { clrscr(); printf("Entre com o valor: "); scanf("%d",&num); } printf("O numero %d em binario e: ",num); binario(num); getch(); }void binario(int n) { int resto; if(n!=0) { resto=n%2; n=n/2; binario(n); printf("%d",resto); } } Compartilhar este post Link para o post Compartilhar em outros sites
Hack_Fenix 0 Denunciar post Postado Setembro 9, 2005 ai o problema eh q você está tentando retornar um vetor e isso não da certo, se você quiser que a função retorne um vetor pra você. você passa ela como argumento da função, quando você faiz isso o vetor é automatimamento convertido para um ponteiro. o jeito mais facil de fazer esse codigo funciona é criar um vetor de char no lugar do int... tenta esse aqui. #include <conio.h>#include <stdio.h>int binario (int numero, char bin[]);int main(){int numero;char bin[100];clrscr();printf("Digite um numero = ");scanf("%d",& numero);binario(numero, bin);printf("\nO binario deste numero e %s", bin);getch();return (0);}int binario (int numero, char bin[]){int i=0;while (numero > 1){ if( (numero % 2) == 0) { bin[i] = '0'; } else { bin[i] = '1'; } numero = numero / 2; i++;}bin[i]='\0';return 0;}ta rodando, mas a sua lógica ta errada ele num ta calculando certo. esse aqui ta certinho; http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif #include<stdio.h>#include<conio.h>void binario(int numero, char bin[]);main(){ char bin[100]; int numero; printf("Digite um numero = "); scanf("%d",&numero); binario(numero, bin); printf("\nO binario deste numero e %s", bin); getch();}void binario(int numero, char bin[]){ int i=0,j=0, num=numero; if(numero>0){ while(num>0){num/=2;i++;} while(numero>0){ bin[(i-1)-j]=( numero%2==0 )? '0' : '1'; numero/=2; j++; } }else{ bin[0]='0'; i=1; } bin[i]='\0';}eh isso ai, qualquer duvida manda um PM ou posta aqui, falow. Compartilhar este post Link para o post Compartilhar em outros sites
Fábio César 0 Denunciar post Postado Setembro 14, 2007 Aproveitando esse assunto e esse código de cima que já converteu um número de decimal para binário, eu quero saber como converte 2 números de decimal para binário e depois soma e fazer o complemento de 2(caso seja negativo). Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Setembro 14, 2007 Ahhh amigo.. A lógica está ai em cima... Quanto menos você se esforçar para aprender, mais dificil vai ser.Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Fábio César 0 Denunciar post Postado Setembro 15, 2007 eh kra, mas eu estou me esforçando pra aprender sim e pq eu estou no 2° Periodo de Ciência da Computação e estou aprendendo agora o C, e estou com muitas dificuldades, mas muito obrigado pelo seu conselho apesar de já estar a segui-lo a muito tempo. Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Setembro 17, 2007 Você pode fazer isso: criar uma struct com um int de 100 posições... typedef struct{ int valor[100];} int100; E na função binário, ao invez de retornar um inteiro, retorne essa estrutura. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
aeqewqewqesd 0 Denunciar post Postado Abril 10, 2008 Bacana, o ultimo exemplo funciona perfeitamente, mas o exemplo em sala de aula foi o abaixo, pq naum funciona ? ------------------------------- int exibebinario(int n); void main(void){ int n; clrscr(); printf("Num ?"); scanf("%d",&n); printf("Binario "); exibebinario(n); getch(); } int exibebinario(int n){ int b[15],i,j; i=0; while (n>0){ b[i] = n%2; n = n/2; i++; } for (j=i+1;j>=0;j--) printf("%d",b[i]); } Compartilhar este post Link para o post Compartilhar em outros sites