|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
[C]Scomporre numero digitato e stampare le cifre che lo compongono??
Vorrei scrivere un programma che scomponga un numero digitato e stampi le sue cifre...
es input 3267 ,stampa 3;2;6;7 Come posso fare? Grazie
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2786
|
Conosci l'operatore resto (%)?
Es: 124 % 10 = 4 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
ehm...si,ma non credo servisse per questo problema
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2786
|
Ci sono due soluzioni che mi vengono in mente: una è usare l'operatore resto (lascio trovare a te il modo), l'altro è leggere il numero come una stringa e quindi stampare i singoli caratteri che la compongono (cioè le cifre).
Comunque essendo un esercizio piuttosto comune credo che la soluzione desiderata sia la prima. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
grazie vedro come fare usando l'operatore resto....
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Oppure usare la funzione sprintf --> http://linux.die.net/man/3/sprintf
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
quella funzione non l'abbiamo ancora fatta(siamo ancora all'inizio)
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
e allora vai con l'operatore resto, per forza di cose...
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
ok,con l'operatore di resto riesco a trovare l'ultima cifra,ma non la penultima,terzultima,etc..(facendo,per esempio,5624%10 trovo 4,ma se faccio 5624%100 mi viene 24,cioe il resto)
Scusate l'ignoranza,ma come faccio a separare le cifre di un numero con l'operatore di resto? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2006
Città: Alcamo (TP)
Messaggi: 1786
|
con la funzione resto ottieni la cifra, poi fai diviso 10 e ottieni le altre 3, quindi puoi rifare il resto per ottenere la penultima cifra, ecc...
ad esempio 456: 456%10 = 6 (ottieni la cifra) 456/10 = 45 (non tiene conto del resto) |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
Ho avuto un problema...
Con questo codice alcuni numeri,specialmente molto lunghi,non stampano le cifre giuste(spesso numeri negativi,boo). Ecco il codice: Codice:
#include <stdio.h>
#include <stdlib.h>
int num;
int main(){
printf("Inserire numero:\n");
scanf("%d\n",num);
while(num!=0){
printf("%d;",num%10);
num=num/10;
}
system("PAUSE");
return 0;
}
Ultima modifica di MissaW_RaZ_98 : 12-02-2012 alle 16:28. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Probabilmente stai cercando di memorizzare un numero troppo grande per un int; prova ad usare un long.
E non usare variabili globali!
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:19.



















