How to extract digits from a number in C? Begining from the most significant digit?

后端 未结 6 964
无人及你
无人及你 2020-12-18 12:25

Getting digits from a number beginning from the least significant in C is pretty easy:

#include 

int main()
{
    int num = 1024;

    while(         


        
6条回答
  •  清酒与你
    2020-12-18 12:31

    Assuming a 32 bit signed number that is positive, then as a simple example:

    #include 
    
    int main()
    {
    int rmdr;
    int dvsr;
    int quot;
        scanf("%d", &rmdr);               // read in number
        dvsr = 1000000000;
        while(0 >= (quot = rmdr / dvsr)){ // skip leading zeroes
            rmdr %= dvsr;
            dvsr /= 10;
            if(dvsr == 1)
                break;
        }
        while(dvsr){                      // display number
            quot = rmdr / dvsr;
            printf("%1d", quot);
            rmdr %= dvsr;
            dvsr /= 10;
        }
        printf("\n");
        return(0);
    }
    

    or a slight optimization:

    int main()
    {
    int rmdr;
    int rm10;
    int dvsr;
    int quot;
        scanf("%d", &rmdr);               // read in number
        rm10 = rmdr/10;
        dvsr = 1;
        while(dvsr <= rm10)               // skip to 1st digit
            dvsr *= 10;
        while(dvsr){                      // display number
            quot = rmdr / dvsr;
            printf("%1d", quot);
            rmdr %= dvsr;
            dvsr /= 10;
        }
        printf("\n");
        return(0);
    }
    

提交回复
热议问题