Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    42

    [C]Variabele numero intera

    Salve a tutti, avrei bisogno di aiuto!
    Ho una variabile intera che voglio scomporre in altre variabili int che costituiscono le unità, le decine...
    Per esempio.
    a=456
    Risultato
    unita=6
    decine=5
    centinaia=4
    Qualcuno sa se esiste una funzione di una libreria che permette di fare questo?
    Se non esiste qualcuno potrebbe aiutarmi a crearne una che lo faccia?

    Grazie

    PS= mi andrebbe bene anche una Cosa del tipo:
    unita=6
    unita_decine=50
    unita_centinaia=400
    ??????????????????????????

  2. #2
    Non c'è nulla di già fatto (o meglio, puoi usare la sprintf e ri-parsare la stringa generata, ma è piuttosto inefficiente nonché inutilmente complicato). Piuttosto, come faresti con carta e penna? (tip: gli operatori che ti servono sono la divisione intera e il resto della divisione)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Le unità non sono altro che il numero stesso, preso ignorando le cifre maggiori o uguali a 10.Il modulo con 10 ritorna un numero compreso tra 0 e 9, per cui ti conviene usare l' operatore modulo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    42
    Ho pensato di poter creare quasto ciclo for, che salva i risultati su una lista( funziona solo se il numero è minore di 16 cifre):
    codice:
       
        int valoreConv=inserisci un numero;
    
        int mlc=1000000000000000;
        int valoreConvList[16];
        int i;
        for (i=0;i<=16;i++)
        {
            int restDivOper=valoreConv%mlc;
            if (restDivOper==valoreConv)
            {
                valoreConvList[i]=0;
                mlc=mlc/10;
                printf("0");
            }
            else
            {
                valoreConvList[i]=valoreConv/mlc;
                valoreConv=restDivOper;
                mlc=mlc/10;
                printf("%d",valoreConvList[i]);
            }
    Il problema è che non funziona!!
    Potreste aiutarmi????
    ??????????????????????????

  5. #5
    Non capisco perché complicarsi così la vita...
    codice:
    int numero=123456;
    int cifre[5*sizeof(numero)*8/10]; // ogni 10 cifre binarie ci sono sicuramente meno di 5 cifre decimali
    int i;
    for(i=0; numero!=0; ++i)
    {
        cifre[i]=numero%10;
        numero/=10
    }
    // in cifre ora ci sono le cifre di numero (complessivamente sono in numero di i)
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    42
    grazie, proverò
    ??????????????????????????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.