Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-10-2004, 20:18   #1
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
aiuto correzzione codice c++ (somma binaria)

ecco a voi il codice ...
non riesco a capire cosa sbaglio concettualmente e per quale motivo non funzione .

vi ringrazio in anticipo!

Codice PHP:
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#define EOS '\0'
#define MAX 20

char *binsum(char[],char[],int,int);   // FUNZIONE PROTOTIPO

//                 //
// FUNZIONE MAIN //
//                 //

int main(){

    
char num1[MAX];
    
char num2[MAX];
    
int lvl1 0;
    
int lvl2 0;
    
int error 0;
    
int error2 =0;
    
cout << "INSERISCI 2 CIFRE BINARIE" <<"\n"<< endl;
    
cin >> num1cout <<":"cin >> num2;

    
lvl1 strlen(num1);
    
lvl2 strlen(num2);
    
    for(
int i=0;lvl1;i++){                       //                      //
        
if (num1[i] != '0' && num1[i] != '1')         // CONTROLLO BINARIO //
            
error 1;}                                 //                      //        
    
if(error==1cout<<"\nERROR!";                     

    for(
int a=0;lvl1;a++){                       //                      //
        
if (num1[a] != '0' && num1[a] != '1')         // CONTROLLO BINARIO //
            
error2 1;}                             //                      //        
    
if(error2==1cout<<"\nERROR!";                         

    
cout << binsum(num1,num2,lvl1,lvl2); 
    
    
    return 
0;
}


/// FUNZIONE ///

char *binsum(char num1[],char num2[],int lvl1,int lvl2){
    
int flag1=0;
    
int inum1=0;
    
int inum2=0;
    
int iresult=0;
    
char *result;
    
char *carry;
    if(
lvl1 lvl2
        
flag1 1;
    if(
lvl1 lvl2)
        
flag1 2;

    if (
flag1 == 1){
        
result = (char *) malloc(lvl1+1);
        
carry  = (char *) malloc(lvl1+1);
        
carry[0] = '0';
        for(
int i=0;i<=(lvl1);i++){
        
        if (
i<= lvl1)
            
inum1 =(int) num1[i];
        else 
inum1 0;

        if (
<= lvl2)
            
inum2 =(int) num2[i];
        else 
inum2 0;
        
        
iresult inum1 inum2 + (int)carry[i];

        if (
iresult == 0){
            
result[i] = '0';
            
carry[i+1] =0;}
        if (
iresult == 1){
            
result[i]= '0';
            
carry[i+1]= 0;}
        if (
iresult == 2){
            
result[i]='0';
            
carry[i+1]=1;}
        if (
iresult == 3){
            
result[i] ='1';
            
carry[i+1] = 1;}
    }
        
result[lvl1+1] = EOS;}

    if (
flag1 == 0){
        
result = (char *) malloc(lvl1+1);
        
carry  = (char *) malloc(lvl1+1);
        
carry[0] = '0';
        for(
int i=0;i<=(lvl1);i++){
        
        if (
i<= lvl1)
            
inum1 =(int) num1[i];
        else 
inum1 0;

        if (
<= lvl2)
            
inum2 =(int) num2[i];
        else 
inum2 0;
        
        
iresult inum1 inum2 + (int)carry[i];

        if (
iresult == 0){
            
result[i] = '0';
            
carry[i+1] =0;}
        if (
iresult == 1){
            
result[i]= '0';
            
carry[i+1]= 0;}
        if (
iresult == 2){
            
result[i]='0';
            
carry[i+1]=1;}
        if (
iresult == 3){
            
result[i] ='1';
            
carry[i+1] = 1;}
    }
        
result[lvl1+1] = EOS;}

    if (
flag1 == 2){
        
result = (char *) malloc(lvl2+1);
        
carry  = (char *) malloc(lvl2+1);

        
carry[0] = 0;
        for(
int i=0;i<=(lvl2);i++){
        
        if (
i<= lvl1)
            
inum1 =(int) num1[i];
        else 
inum1 0;

        if (
<= lvl2)
            
inum2 =(int) num2[i];
        else 
inum2 0;
        
        
iresult inum1 inum2 +(int) carry[i];

        if (
iresult == 0){
            
result[i] = '0';
            
carry[i+1] =0;}
        if (
iresult == 1){
            
result[i]= '0';
            
carry[i+1]= 0;}
        if (
iresult == 2){
            
result[i]='0';
            
carry[i+1]=1;}
        if (
iresult == 3){
            
result[i] ='1';
            
carry[i+1] = 1;}
    }
        
result[lvl1+1] = EOS;}

    return 
result;}


    
////// 
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2004, 09:50   #2
bgpop
Senior Member
 
L'Avatar di bgpop
 
Iscritto dal: Nov 2000
Città: Hinterland (MI)
Messaggi: 1414
Quote:
for(int a=0;i < lvl1;a++){ // //
if (num1[a] != '0' && num1[a] != '1') //
Non so se possa essere questo il problema, ma guarda la condizione del for... hai messo i come il ciclo precedente, ma incrementi la a.
bgpop è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Le sonde spaziali ESA ExoMars e Mars Exp...
Roscosmos: static fire per i propulsori ...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v