View Full Version : [C]Scomporre numero digitato e stampare le cifre che lo compongono??
MissaW_RaZ_98
08-02-2012, 13:40
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:help:
wingman87
08-02-2012, 13:57
Conosci l'operatore resto (%)?
Es:
124 % 10 = 4
MissaW_RaZ_98
08-02-2012, 16:02
ehm...si,ma non credo servisse per questo problema
wingman87
08-02-2012, 16:55
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.
MissaW_RaZ_98
08-02-2012, 20:48
grazie vedro come fare usando l'operatore resto....
clockover
09-02-2012, 11:46
Oppure usare la funzione sprintf --> http://linux.die.net/man/3/sprintf
MissaW_RaZ_98
09-02-2012, 13:12
quella funzione non l'abbiamo ancora fatta(siamo ancora all'inizio)
tecno789
09-02-2012, 14:05
quella funzione non l'abbiamo ancora fatta(siamo ancora all'inizio)
e allora vai con l'operatore resto, per forza di cose...
MissaW_RaZ_98
09-02-2012, 18:11
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?
PSManiaco
09-02-2012, 18:14
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)
MissaW_RaZ_98
12-02-2012, 15:26
Ho avuto un problema...
Con questo codice alcuni numeri,specialmente molto lunghi,non stampano le cifre giuste(spesso numeri negativi,boo).
Ecco il 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;
}
Probabilmente stai cercando di memorizzare un numero troppo grande per un int; prova ad usare un long.
E non usare variabili globali! :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.