以文本方式查看主题

-  课外天地 李树青  (http://njcie.com/bbs/index.asp)
--  C语言程序设计  (http://njcie.com/bbs/list.asp?boardid=29)
----  课上练习代码——利用循环实现的数位显示  (http://njcie.com/bbs/dispbbs.asp?boardid=29&id=1572)

--  作者:admin
--  发布时间:2015/10/27 13:32:29
--  课上练习代码——利用循环实现的数位显示


求位数,输出各个位,倒序输出各个位
int main()
{
    int number=0,numberBak=0,quotient=-1,divider=10000;
    int i,j,flag=1;
    printf("请输入一个不大于5位数的整数:");
    scanf("%d",&number);
    numberBak=number;
    for(i=0; i<5; i++)
    {
        quotient=number/divider;
        number=number%divider;
        divider=divider/10;
        if(flag && quotient>0)
        {

            j=5-i;
            printf("这是%d位数\\n每个位数是:",j);
            flag=0;
        }
        if(flag==0)
            printf("%d ",quotient);

    }
    printf("\\n倒序结果为:");
    for(i=0; i<j; i++)
    {
        printf("%d ",numberBak%10);
        numberBak=numberBak/10;
    }
    return 0;
}

 

进一步简化:
int main()
{
    int number=0,numberBak=0,quotient=-1,divider=10000;
    int i,j=0;
    printf("请输入一个不大于5位数的整数:");
    scanf("%d",&number);
    numberBak=number;
    for(i=0; i<5; i++)
    {
        quotient=number/divider;
        number=number%divider;
        divider=divider/10;
        if(j==0 && quotient>0)
        {

            j=5-i;
            printf("这是%d位数\\n每个位数是:",j);
        }
        if(j>0)
            printf("%d ",quotient);
    }
    printf("\\n倒序结果为:");
    for(i=0; i<j; i++)
    {
        printf("%d ",numberBak%10);
        numberBak=numberBak/10;
    }
    return 0;
}

 

[此贴子已经被作者于2015-11-05 20:48:24编辑过]