[c++] affiancare cifre prese da imput

Svpam

Nuovo Utente
70
2
CPU
intel core i5-2310m
HDD
1TB Western digital 5400rpm
RAM
8gb ddr3
GPU
amd ati 7310m
Monitor
samsung E2220
OS
Windows 7; ubuntu 14.04; Kali linux; debian 7
Devo scrivere un programma che legge da imput una sequenza di cifre intere(0-9), e mi stampi in output il numero che si ottiene affiancando le cifre es:
imput: 5 3 4 2 -1 (-1 è il carattere sentinella)
output: 5342

per il momento ho scritto la parte ""facile"", cioè quella che chiede le cifre all'utente, mi manca quindi la parte in cui stampa le cifre affiancate, ma non ho idea di come muovermi, avete qualche suggerimento?

N.B.: non posso usare vettori ne puntatori.
 

Dario Salvati

Utente Attivo
1,401
247
CPU
Intel Core i5-3470
Scheda Madre
ASUS P8Z77-V LX
HDD
Western Digital Green 1TB 7200rmp + Crucial M550 128Gb
RAM
Corsair 8Gb(2x4GB) 1600Mhz
GPU
Msi GeForce 770 2Gb
Audio
Integrata mainbord
Monitor
Asus VE247H / 23.6"
PSU
XFX 550W Core Edition
Case
Fractal Design R4
OS
Arch Linux + Gnome
Posta il codice scritto fino ad ora in modo tale da vedere cosa hai fatto.
 

Svpam

Nuovo Utente
70
2
CPU
intel core i5-2310m
HDD
1TB Western digital 5400rpm
RAM
8gb ddr3
GPU
amd ati 7310m
Monitor
samsung E2220
OS
Windows 7; ubuntu 14.04; Kali linux; debian 7
Codice:
#include <iostream>

using namespace std;

int main()
{
    int cifra;
    bool nondec=false;
    cin>>cifra;
    if (cifra==-1)
        cout<<"VUOTO";
    else
    {
        while (cifra!=-1)
        {
            if (cifra<0 || cifra>9)
                nondec=true;
            cin>>cifra;
        }
        if (nondec==true)
            cout<<"ERRORE";
        else
        {
              // qui andrebbe la parte dove affiancare le cifre
        }
    }

    return 0;
}
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,946
11,581
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
te la cavi usando variabili int;
definisci inizilmente un
int totale=0;
poi fai un ciclo dove leggi cifra per cifra, quindi ti serve una
int cifra; // cifra che stai leggendo
la prima volta incrementi totale con la cifra letta, per es. se la prima cifra è 5 totale varrà 0+5=5
per ogni ulteriore cifra che leggi dovrai incrementare totale innanzitutto moltiplicandolo per 10 e poi incrementando della cifra letta;
per esempio se la seconda cifra è 3 farai totale*10+cifra, ottenendo 5*10+3=53
se la terza cifra che leggi è 4, con lo stesso procedimento prima moltiplichi totale per 10 e poi aggiungi 4 ossia farai 53*10+4=534
e così via; l'algoritmo si basa sul fatto che l'ultima cifra letta sono le unità;
ovviamente il tutto funziona con un numero di cifre che dipende dalla risoluzione in bit degli int (per es. se int è a 32 bit in complemento a 2 al massimo "leggi" numeri fino a 2 miliardi circa (9 cifre purchè il totale sia inferiore a 2^31-1);
per aumentare puoi usare long, ulong o che altro esiste in C++;
per andare oltre servono le stringhe, in quel caso basta concatenare "a destra" l'ultimo carattere letto di volta in volta, per cui le variabili coinvolte sono char/string
I dettagli del codice puoi farli da solo

P.S
si dice input (con la "N", non con la "M")
 
Ultima modifica:
  • Mi piace
Reazioni: Mursey

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili