Oppure

Loading
19/10/09 15:23
d4nd1
giorno ragazzi dovevo fare una somma tra 2 numeri binari ma ci ho provato e nn ci riesco premetto ke sono agli inizi io ho scritto questo e sò ke è sbajato mi dareste una mano?
usando solo if ed else...


#include<stdio.h>
main()
{
      int a1,a2,a3,a4,b1,b2,b3,c,e,f,g,d=0,h=0,i=0,n=0,m=0;
      printf("Inserisci primo numero binario");
      scanf("%d",&a1);
      printf("Inserisci primo numero binario");
      scanf("%d",&a2);
      printf("Inserisci primo numero binario");
      scanf("%d",&a3);
      printf("Inserisci primo numero binario");
      scanf("%d",&a4);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b1);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b2);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b3);
      
     
      c=a4+b3;
       if (a4+b3==0&2)
       {c=0;}
       if (a4+b3==1&3)
       {c=1;}
       if (a4+b3==2&3)
       {d=d+1;}
       e=a3+b2+c;
       if (a3+b2+c==0&2)
       {c=0;}
       if (a3+b2+c==1&3)
       {c=1;}
       if (a3+b2+c==2&3)
       {d=h+1;}
       f=a2+b1+e;
       if (a2+b1+e==0&2)
       {c=0;}
       if (a2+b1+e==1&3)
       {c=1;}
       if (a2+b1+e==2&3)
       {h=i+1;}
       g=a1+f;
       if (a1+f==0&2)
       {c=0;}
       if (a1+f==1&3)
       {c=1;}
       if (a1+f==2&3)
       {i=m+1;}
       
      
         printf("La somma e' :%d",g);
         printf("%d",f);
         printf("%d",e);
         printf("%d",c);
         
         
              
       
       
           
      getchar();
      getchar();
      }
aaa
19/10/09 17:19
LittleHacker
Scusa invece che fare tutto questo casino di codice non fai prima a far inserire il numero decimale e poi fare le tue operazioni e poi convertirlo in binario, oppure da binario a decimale(operazioni) e poi ancora in binario?
(l'ultimo che ho detto te lo sconsiglio)...xD:k:
aaa
19/10/09 18:44
Matthew
Premetto che non ho neanche letto tutto il codice, perche' mai l'utente dovrebbe inserire tre volte lo stesso dato? Non ha senso...
aaa
25/10/09 9:34
NickoMaiden
consiglio: limitati a fare ciò che rientra nelle tue conoscenze.


con solo if ed else è abbastanza palloso.






 int a1,a2,a3,b1,b2,b3;
      printf("Inserisci primo numero binario");
      scanf("%d",&a1);
      printf("Inserisci primo numero binario");
      scanf("%d",&a2);
      printf("Inserisci primo numero binario");
      scanf("%d",&a3);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b1);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b2);
      printf("Inserisci secondo numero binario");
      scanf("%d",&b3);
      
    
    int S1=0,S2=0,S3=0,S4=0;
      //prima fase: sommare il tutto
    S1=a3+b3;
    S2=a2+b2;    
    S3=a1+b1;          
    if(S1==2)
       {
        S1=0;
        S2++;
        }
    if(S2==2) // questa volta potrebbe essere anche 3 contando a2 e b2 uguali a 1 e il riporto dell'operazione precedente
              // (personalmente avrei usato un while ma l'ho evitato perchè probabilmente ancora non lo conosci)
        {
        S2=0;
        S3++;
        }
    else if(S2==3)
        {
        S2=1;
        S3++;
        }
        
       if(S3==2)   // anche qui
        {
        S3=0;
        S4++;
        }
    else if(S3==3)
        {
        S3=1;
        S4++;
        }
        
        
        cout<<"\n\n\n la somma e':"<<S4<<"\t"<<S3<<"\t"<<S2<<"\t"<<S1;
        
      getchar();
      getchar(); 




cmq studiati i cicli e i vettori e poi se ne riparla su questo esercizio ( non sarà più facile, sarà anche corretto anche da un punto di vista di programmazione... se mi mettessi a fare tutti i controlli necessari usando solo if ed else andrei a scrivere centinaia di righe )

Postato originariamente da Matthew:

Premetto che non ho neanche letto tutto il codice, perche' mai l'utente dovrebbe inserire tre volte lo stesso dato? Non ha senso...


prende il codice binario elemento per elemento

Postato originariamente da LittleHacker:

Scusa invece che fare tutto questo casino di codice non fai prima a far inserire il numero decimale e poi fare le tue operazioni e poi convertirlo in binario, oppure da binario a decimale(operazioni) e poi ancora in binario?
(l'ultimo che ho detto te lo sconsiglio)...xD:k:


prova a farti nella testa un algoritmo di soli if ed else che converte il numero binario
:rotfl: meglio di no
Ultima modifica effettuata da NickoMaiden 25/10/09 9:38
aaa