Separazione delle cifre di un intero

di il
9 risposte

Separazione delle cifre di un intero

Nell 'accingermi ad apprendere i rudimenti del linguaggio C sto utilizzando il testo "IL LINGUAGGIO C Fondamenti e tecniche di programmazione" di Paul e Harvey Deitel. Ho trovato un esercizio che fatico a comprendere, del quale qui di seguito pubblicherò il testo:

"Separazione cifre di un intero: Scrivete un programma che riceva in ingresso un numero di 5 cifre, separi il numero nelle sue cifre individuali e stampi le cifre ciascuna separata dall'altra da tre spazi. [Suggerimento: usate combinazioni di divisioni intere con l'operazione di resto.] Ad1 esempio, se l'utente scrive 42139, il programma deve stampare:
4 2 1 3 9"

Finora ho fatto questo:


#include <stdio.h>

int main(void){

printf("%s\n","Insert please a five digit integer");
int a;
scanf("%d",&a);
if(a<10000){
printf("%s\n","Wrong number");
printf("%s\n","Insert please a five digit integer");
scanf("%d",&a);
}

if(a>99999){
printf("%s\n","Wrong number");
printf("%s\n","Insert please a five digit integer");
scanf("%d",&a);
}





return 0;
}

9 Risposte

  • Re: Separazione delle cifre di un intero

    Ragazzi ma sto benedetto scanf fatelo su un array di char, che cavolo lo fate su un int che avete i char che vi servono già belli pronti...
  • Re: Separazione delle cifre di un intero

    Hehe...Temo di non essere ancora così avanti. Ho praticamente iniziato l'altro ieri
  • Re: Separazione delle cifre di un intero

    matteo83 ha scritto:


    Finora ho fatto questo:
    E quindi? Non sai andare avanti? Sai come funzionano gli operatori resto e divisione intera?
    In ogni caso il codice va postato utilizzando gli appositi tag (pulsante </> dell'editor) e quel poco che hai scritto può essere semplificato in:
    #include <stdio.h>
    
    int main(void)
    {
        int a;
        do
        {
            printf("Insert a five digit integer: ");
            scanf("%d", &a);
        }
        while(a < 10000 || a > 99999);
        printf("%d", a);
        return 0;
    }
    P.S.
    Visto che hai appena iniziato, meglio abituarsi a seguire delle buone norme di programmazione: rispetta la spaziatura e l'indentazione.
  • Re: Separazione delle cifre di un intero

    Nippolo ha scritto:



    E quindi? Non sai andare avanti? Sai come funzionano gli operatori resto e divisione intera?
    Grazie della risposta. So come si usano, ma in questo frangente non riesco proprio a contestualizzarli.
  • Re: Separazione delle cifre di un intero

    matteo83 ha scritto:


    Nippolo ha scritto:



    E quindi? Non sai andare avanti? Sai come funzionano gli operatori resto e divisione intera?
    Grazie della risposta. So come si usano, ma in questo frangente non riesco proprio a contestualizzarli.
    Aspetta, forse ci sono arrivato
  • Re: Separazione delle cifre di un intero

    Grazie della risposta. So come si usano, ma in questo frangente non riesco proprio a contestualizzarli.
    Quindi è più una questione di logica/matematica che di programmazione!
    Aspetta, forse ci sono arrivato
    Non è complicato, ragionaci un po'!
  • Re: Separazione delle cifre di un intero

    #include <stdio.h>
    
     int main(void)
    {
    
    printf("%s\n","Insert please a five digit integer: ");
    int a;
    scanf("%d",&a);
    
    int dgt5 = a%10;
    int dgt4 = (a%100)/10;
    int dgt3 = (a%1000)/100;
    int dgt2 = (a%10000)/1000;
    int dgt1 = a/10000;
    
    printf("%d   %d   %d   %d   %d",dgt1,dgt2,dgt3,dgt4,dgt5);
    
    
    
    return 0;
    
    }
    Funziona
  • Re: Separazione delle cifre di un intero

    L’indentazione fa piangere

    Diciamo che ci sono modi più intelligenti, prova a farlo con un ciclo for.
  • Re: Separazione delle cifre di un intero

    _Achille ha scritto:



    Diciamo che ci sono modi più intelligenti, prova a farlo con un ciclo for.
    Quando ci sarò arrivato senz'altro, grazie comunque per i suggerimenti.
Devi accedere o registrarti per scrivere nel forum
9 risposte