|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
[C++] distinguere unita decine ecc
Salve a tutti.. ho il seguente problema.. vorrei realizzare un programma in grado di leggere in un numero intero per esempio 125 le singole unità ovvero vorrei che il programma mi metta come risultato: i numeri contenuti in 125 sono 1 2 5
non so se rendo l'idea però ciò che mi serve è la lettura di ogni singolo numero contenuto in un intero e non la lettura completa.. altro esempio se io scrivo 234 il programma mi dovrà leggere separatamente 2 3 4 e non 234 per intero.. spero di essermi spiegato.. grazie in anticipo e scusate la confusione.. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
devi leggere l'intero e poi separarlo (reiterando la divisione con resto di 10) oppure leggere caratteri e ricavarne cifre sottraendogli il carattere '0'
tipo Codice:
char c = '7'; int n = c - '0'; // n = 7 |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
Non ho capito bene... Potresti farmi vedere il codice di un programmino semplice che ti "scompone" il numero.. per esempio se scrivo 154 lui mi scrive il numero è composto da 1 5 4.. te ne sarei grato.. grazie ancora!
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
È matematica: i numeri vengono rappresentati con una notazione posizionale, ovvero, le cifre hanno un "peso" che dipende dalla loro posizione nella rappresentazione tipografica del numero.
Ad esempio: 123 = 1·100 + 2·10 + 3·1 = 1·10² + 2·10¹ + 3·10⁰. Se tu prendi un numero come 123 e lo dividi per la base (tipicamente, 10) in cui è rappresentato, questo diventerà: ⎣123 / 10⎦ = ⎣(1·10² + 2·10¹ + 3·10⁰) · 10⁻¹⎦ = ⎣1·10²⁻¹ + 2·10¹⁻¹ + 3·10⁰⁻¹⎦ = ⎣1·10¹ + 2·10⁰ + 3·10⁻¹⎦. La cifra 3·10⁻¹ diventa parte frazionaria e va quindi persa con l'arrotondamento (sono numeri interi!), ed il numero quindi diventa 12. Il resto della divisione del numero per la base, invece, ti darà proprio questa parte andata persa, cioè 3. In questo modo vedi subito che, se parti da un numero intero n, il resto della divisione intera tra n e 10 ti "estrapola" l'ultima cifra del numero, mentre il risultato della divisione intera tra n e 10 ti "elimina" dal numero l'ultima cifra appena estratta. Se ripeti questo procedimento fino ad avere n = 0, avrai estratto tutte le cifre, una alla volta. Attento all'ordine, però: questo procedimento estrae le cifre "da destra a sinistra". ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
ho capito cosa intendi.. ma il problema non è numerico... ma riguarda il c++.. ovvero non so come leggere una singola lettera contenuta in una parola... per esempio mi servirebbe un programma che se io scrivo la parola "ciao" lui mi dica che la terza lettera è la "a" non so se mi spiego...
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
sul serio, ti serve un buon libro di programmazione
|
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
si lo so..
comunque mi potresti fare un programma esempio?? uno semplice.. |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Mar 2008
Messaggi: 267
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Be', ipotizzando che la parola sia conservata in una stringa, allora ti basta accedervi con le parentesi quadre:
Codice:
string s("ciao");
cout << "La terza lettera è: " << s[2] << endl;
ciao EDIT: LOL, ormai avevate finito la discussione senza di me e la pagina di modifica era rimasta aperta per più di un'ora... vabbe', lascio comunque il messaggio.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 24-09-2010 alle 23:05. |
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Sep 2010
Messaggi: 42
|
un altra cosa.. come faccio ad aggiungere al valore che prendo un numero per esempio se prendo 10 come faccio ad aggiungergli 5? ho provato ma mi dei risultati strani..
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:59.




















