Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Charles System

converter decimal para binario e binario para decimal

Recommended Posts

Pessoal estou com um problema ..no switch case 2:

ja verifiquei mais num encotrei o problema, creio que seja um erro simples mais num to vendo...

Fiz o codigo mais num sei onde ta o erro

Abrasso ..Obrigado pela ajuda

 

CODIGO:

#include <stdio.h>
#include<string.h>
#include <conio.h>
#include <math.h>
#include<stdlib.h>
int binario (int numero, char bin[]);
int main(int argc, char *argv[]){
	int i = 0;
	int dec = 0;
	int p   = 0;
	int nbinario[8],opc;
	   system("color a9");
	   system("cls");
	   do{
		  printf("\n\t\t --= CONVERTE BINARIO DECIMAL, DECIMAL BINARIO =-- ");
		  printf("\n 1.Binario;\n 2.Decimal;\n");
		  printf(" 3.Sair\n\n");
		  printf("Insira opcao: ");
		  scanf("%d",&opc);
	   switch(opc){
			 case 1:
				   printf("\nDigite um numero binario de 8 bits "); 
				   scanf("%d",&nbinario); 
				   int binario = *nbinario;
				   while(binario>0){
						 i = binario % 10;
						 dec += i * (int)pow(i * 2, p++);
						 binario /=  10;
				   }
				   printf("%i \n",dec); 
				   getchar();
				   getchar();break;
			case 2:
				  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;break; 
			 case 3:
				   printf("\n Saindo...\n");
				   sleep(3); break;
				   default:
				   printf("\n Digite Novamente!\n");
		}
	}while(opc!=3);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim no case 2:

 

case 2:
{
				  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;break;
}

 

Por que você define uma função ali dentro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não defina funções dentro de outras funções.

Apesar da linguagem permitir, não é uma boa prática.

Só serve para deixar o código confuso.

 

Qual o problema?

 

você notou que você usa a função "binario" antes de declarar ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq você passa 'bin' como parametro?

pq a função binario retorna um int na assinatura e naum vi nenhum return nela?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.