PDA

View Full Version : programma c


ibra842
05-10-2011, 13:14
salve ragazzi un saluto mi sono appena iscritto sto studiando da autodidatta il linguaggio c e la mia matematica scricchiola un pò dovrò sicuramente riprenderla col c me ne sono accorto.sono alle prese con un programma che mi chiede di prendere in input un numero di 5 cifre e spezzare ognuna delle sue cifre e allontanaralas di tre spazi cioè 12345 diventa 1 2 3 4 5 questo è l output.premesso che non voglio e nn devo usare vettori o stringhe per ora, ho pensato a questo codice:
#include <stdio.h>

int main(void){
int numero=0;

printf("inserite un numero da scomporre di max 5 cifre:");
scanf("%d",&numero);


while(numero>0){

printf("%d ",numero%10);//si può far partire da 1??

numero=numero/10;

}


return 0;
}
il problema è solo che cosi lotput è al contrario...come rimediare?usando solo printf e solozioni tipo while o for?thanks

Floris
05-10-2011, 16:15
Se prendi in input il numero come una stringa dopo lavorarci diviene più semplice.
Altrimenti puoi procedere prendendo un numero, prima dividendo per 10000 (e poi facendo modulo 10...ma è ininfluente), poi dividendo per 1000 e prendendo il modulo 10 del numero che ottieni, poi dividendo per 100 e prendendo sempre il modulo 10 e così via.
In sostanza all'i-esimo ciclo (i in [0,4]) la i-esima cifra di N la ottieni con:

( N/(10*(4-i)) )%10 se i<4
N%10 se i=4

dove le divisioni sono da intendersi tra interi e quindi con risultato intero ottenuto tralasciando i decimali.

ibra842
06-10-2011, 19:55
si alla fine ero arrivato al metodo del /10000%10 e cosi via.....volevo solo spiegare se ho capito bene,io ho esempio 12345/10000 otteniamo 1,2345 cioè la prima cifra poi 12345/1000 12,345 facendo modulo dieci abbiamo le due cifre cioè 12 e cosi via ho capito bene?thanks in output avrò 1 2 3 4 5.