Ayuda con Suma binaria (tiene codigo)o reprobare el semestre en menos de 1 hora

Iniciado por silverk123, 6 Diciembre 2012, 00:15 AM

0 Miembros y 1 Visitante están viendo este tema.

silverk123

Hola Foro. He buscado por todo internet ayuda pero no encuentro una solucion.

Espeor y me ayuden aqui.

Lo que tengo que ahcer es una suma binaria.
Ya tengo el codigo pero no me imprime el resultado solo me imprime puros 1606 en ves del los resultados.

#include <string.h>
#include <conio.h>
#include <stdio.h>
int N1[8],N2[8], RE[9];
int C=0,I=0;

main()
{
clrscr();


    printf("Captura un Nø Binario de 8 Digitos: \n");
    scanf("%d",&N1[I]);

    printf("Captura otro Nø Binario de 8 Digitos:\n ");
    scanf("%d",&N2[I]);

   for(I=7;I>=0;--I)
   {
    if(N1[I]+N2[I]+C==0)
     {
      RE[I]=0;
      C=0;
     }
    else if(N1[I]+N2[I]+C==1)
         {
          RE[I]=1;
          C=0;
         }
else   if(N1[I]+N2[I]+C==2)
          {
           RE[I]=0;
           C=1;
          }
 else   if(N1[I]+N2[I]+C==3)
             {
              RE[I]=1;
              C=1;
              }
   }

  printf("Resultado: ");
 
for(I=0;I<=7;++I)   /*ciclo para imprimir 1  por 1 el numero */
  {
  printf("%d",RE);
  }
 getch();

}



ojala y me puedna ayudar!

silverk123

Por favor ayudenme me queda 1 hora ocn 20 minutos y todavi ano consigo que me imprima bien el resultaod llevo ya mas de 4 horas intentadolo y nada.

Legnak

Código (c++) [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

char a[5]; //variable para el primer valor a sumar
char b[5]; //variable para el primer valor a sumar
long resultado; //variable para el resultado
char resultado_str[5]; //variable para obtener el resultado en binario
int main ()
{
printf("Introduzca primer n£mero: ");
scanf("%s", &a); //lectura del primer numero
printf("Introduzca segundo n£mero: ");
scanf("%s", &b); //lectura del segundo numero
resultado = strtol (a, NULL, 2) + strtol (b, NULL, 2); //suma de los dos valores usando la funcion strtol
itoa(resultado, resultado_str, 2);//como se obtiene un resultado decimal se convierte a entero con esta función y se le asigna a la variable resultado_str
printf("El resultado es %s",resultado_str); //imprime el resultado
getch();
return 0;
        }


leosansan

Has pruebas y confirma que funciona bien:
Código (cpp) [Seleccionar]

#include <string.h>
#include <stdio.h>
#define N   3 /*<== aqui pones los digitos que quieres*/

int main()
{
   int N1[N]={0},N2[N]={0}, RE[9]={0};
   int C=0,I=0;
   for(I=0;I<N;I++){
       printf ("Digito %d del N1: ",I);
       scanf("%d",&N1[I]);
   }
   puts ("\n");
   for(I=0;I<N;I++){
       printf ("Digito %d del N2: ",I);
       scanf("%d",&N2[I]);
   }
   for(I=0;I<N;++I){
       if((N1[I]+N2[I]+C)==0){
          RE[I]=0;
          C=0;
       }
        else if((N1[I]+N2[I]+C)==1){
              RE[I]=1;
              C=0;
       }
       else   if((N1[I]+N2[I]+C)==2){
               RE[I]=0;
               C=1;
       }
       else   if((N1[I]+N2[I]+C)==3){
           RE[I]=1;
           C=1;
       }
   }
   if (C==0) RE[I]=0;
   else RE[I]=1;
   for(I=N;I>=0;--I)  /*ciclo para imprimir 1  por 1 el numero */
     printf("%d ",RE[I]);
   return 0;
}

Saluditos!.