|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Oct 2011
Messaggi: 3
|
programma c
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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
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: Codice:
( N/(10*(4-i)) )%10 se i<4 N%10 se i=4
__________________
Concluso con:... Ultima modifica di Floris : 05-10-2011 alle 17:19. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Oct 2011
Messaggi: 3
|
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.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:34.



















