PDA

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;


}

GByTe87
12-02-2012, 18:21
Probabilmente stai cercando di memorizzare un numero troppo grande per un int; prova ad usare un long.

E non usare variabili globali! :D