Oppure

Loading
22/10/16 13:51
mister x
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[i] - 48;
cifraB=b[i] - 48;
somma =cifraA + cifraB + riporto;
switch(somma)
{
case 0:
risultato[i] = '0';
riporto = 0;
break;
case 1:
risultato[i] = '1';
riporto = 0;
break;
case 2:
risultato[i] = '0';
riporto = 1;
break;
case 3:
risultato[i] = '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 22/10/16 17:22
aaa
22/10/16 15:18
nessuno
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
22/10/16 16:10
lumo
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.
aaa
22/10/16 16:44
mister x
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 22/10/16 16:45
aaa
22/10/16 16:50
lumo
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 22/10/16 17:01
aaa
22/10/16 16:57
nessuno
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
22/10/16 17:01
lumo
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
aaa
22/10/16 17:13
mister x
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";
Ultima modifica effettuata da mister x 22/10/16 17:19
aaa