Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - addizione binaria dev c
Forum - C/C++ - addizione binaria dev c

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
mister x (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/10/2016

Segnala al moderatore
Postato alle 15:51
Sabato, 22/10/2016
salve oggi ho iniziato a fare un programma in dev c , ma per qualche strano errore il programma non mi fa l'addizione giusta mi pottete aiutare
grazie in anticipo :k::k::k::k:
ecco il codice
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{
    char a[10];
    char b[10];
    char risultato[]="00000000";
    int cifraA, cifraB, somma;
    int riporto=0;
    printf("inserisci cifraA :\t");
    scanf("%d",&cifraA);            
    printf("inserisci cifraB :\t");
    scanf("%d",&cifraB);
    int i;
    for (i=7; i >= 0; i--)
    {
        cifraA=a - 48;
        cifraB=b - 48;
        somma =cifraA + cifraB + riporto;
        switch(somma)
        {
            case 0:
             risultato = '0';
             riporto = 0;
            break;
            case 1:
             risultato = '1';
             riporto = 0;
            break;
            case 2:
             risultato = '0';
             riporto = 1;
            break;
            case 3:
             risultato = '1';
             riporto = 1;
            break;
        }
   }
    printf("Risultato:\t%s",risultato);  //errore nella stampa del risultato
    printf("\n\n");
    system("PAUSE");    
    return 0;
}

Ultima modifica effettuata da mister x il 22/10/2016 alle 19:22
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:18
Sabato, 22/10/2016
Utilizza i tag CODE per il codice perché altrimenti non si capisce ...

E indica anche cosa non va un po' più in dettaglio.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 18:10
Sabato, 22/10/2016
Devi prendere l'errore che ti dà il compilatore e metterlo qui sul forum :k:  Non c'è chi si prende la briga di compilare il tuo codice per provarlo.

PM Quote
Avatar
mister x (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/10/2016

Segnala al moderatore
Postato alle 18:44
Sabato, 22/10/2016
il programma dato in imput i 2 numeri binari non da il risultato sbagliato ex.
10000000+01111111=11111111
il programma mi dice che è ugualle a 00000000

Ultima modifica effettuata da mister x il 22/10/2016 alle 18:45
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 18:50
Sabato, 22/10/2016
Devi usare gli indici per selezionare la componente giusta da scrivere (risultato[ i ] = ...) .
Però è strano che il codice funzioni, sicuro di averlo compilato? Non dovrebbe essere possibile assegnare un carattere (tipo char) a 'risultato' (che è di tipo char[])

Ultima modifica effettuata da lumo il 22/10/2016 alle 19:01
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:57
Sabato, 22/10/2016
Se non usi i tag CODE quando scrivi

[ i ]

(senza spazi) passi al corsivo e non si capisce nulla.

Comunque, ho visto che gli operandi su cui lavori dovrebbero essere

char a[10];
char b[10];

ma non esegui mai l'input dei singoli bit in questi vettori. Quindi è ovvio che non avrai mai un risultato corretto.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 19:01
Sabato, 22/10/2016
Testo quotato

Postato originariamente da nessuno:
Se non usi i tag CODE quando scrivi
[ i ]
(senza spazi) passi al corsivo e non si capisce nulla.


Thanks, ci sono incappato pure io

PM Quote
Avatar
mister x (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/10/2016

Segnala al moderatore
Postato alle 19:13
Sabato, 22/10/2016
ecco l'esecuzione del programma

in realtà le variabili erano così ma visto che faceva solo ciò che c'era scritto all'interno gli altre combinazioni di numeri binari non li faceva stavo provando a risolvere questo piccolo problema senza riuscirci

    char a[]="00001010";
    char b[]="00001100";
    char risultato[]="000000000";


mister x ha allegato un file: Catturawd.PNG (22640 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da mister x il 22/10/2016 alle 19:19
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 19:16
Sabato, 22/10/2016
Testo quotato

Postato originariamente da mister x:

ecco l'esecuzione del programma


scanf interpreta i numeri in formato decimale, quindi ottieni 1000001 come somma, nessun case dentro lo switch viene eseguito.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo