Ir ao conteúdo

Posts recomendados

Postado

Gente estou parada mais de horas nesse programa olha o anunciado 

 Escreva um procedimento que preencha um vetor de números inteiros de tamanho tam, apenas com os números zero ou um. Depois informe o número binário resultante deste preenchimento e o valor correspondente em decimal.

void converteBinario( int bin[], int tam)

 

quando faço o codigo ele lê da direita para esquerda, mas para converter eu preciso ir da esquerda para direita

estou tentando inverter o vetor mas n esta indo 

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,pot;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      

    
    for(i=0;i<t;i++){
        if(bin==1){
        
            dec=dec*bin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

adicionado 14 minutos depois

pessoal ja consegui 

...

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,p;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      
    final=t-1;
    for(p=0;p<t;p++){
        invbin[p]=bin[final];
        final--;
    }
    
    for(i=0;i<t;i++){
        if(invbin==1){
        
            dec=dec*invbin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

  • Obrigado 1
Postado

@Tamara Valesi     você pode colocar o loop para ir de trás pra frente ,  " DownTo "  ,  e o vetor precisa da posição ,

então seu código poderia ser assim  :

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>
#define t 8
int main(){
    setlocale(LC_ALL,"portuguese");
    int bin[1000],dec=0,m=1,i,j,pot,tam;
    int invbin[t],final;
    printf("informe o tamanho do vetor ");
    scanf("%d",&tam);
    printf("\nInsira o numero binario 1  ou 0 : ");
    for(j=0;j<tam;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<tam;i++){
      printf("%d",bin[i]);/* faltou a posição no vetor */
    }
    printf("\n");
    for(i=tam-1; i>-1; i--){
        if( bin[i] == 1 ){
            dec += bin[i]*m;
        }
        m *= 2;
    }
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

@Tamara Valesi

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!