注册 登录
编程论坛 VC++/MFC

大家来看看我这样做有什么问题(新手求教)

白泽 发布于 2016-11-18 10:06, 1625 次点击
#include <stdio.h>
int main()
{
    int a,b,c,d,e,f;
        printf("请输入一个正整数:");
        scanf("%d",&a);
    if(a/10000>=1&&a/1000000<1)
        b=(int)(a/10000);
        c=(int)((a%10000)/1000);
        d=(int)(((a%10000)%1000)/100);
        e=(int)((((a%10000)%1000)%100)/10);
        f=(int)((((a%10000)%1000)%100)%10);
        printf("  该数是五位数\n");
        printf("万位上的数字是:%d\n",b);
        printf("千位上的数字是:%d\n",c);
        printf("百位上的数字是:%d\n",d);
        printf("十位上的数字是:%d\n",e);
        printf("个位上的数字是:%d\n",f);
        if(a/1000>=1&&a/10000<1)
        c=(int)((a/1000));
        d=(int)(((a%1000)/100));
        e=(int)(((a%1000)%100)/10);
        f=(int)(((a%1000)%100)%10);
        printf("  该数是四位数\n");
        printf("千位上的数字是:%d\n",c);
        printf("百位上的数字是:%d\n",d);
        printf("十位上的数字是:%d\n",e);
        printf("个位上的数字是:%d\n",f);
    if(a/100>=1&&a/1000<1)
        d=(int)(a/100);
        e=(int)((a%100)/10);
        f=(int)((a%100)%10);
        printf("  该数是三位数\n");
        printf("百位上的数字是:%d\n",d);
        printf("十位上的数字是:%d\n",e);
        printf("个位上的数字是:%d\n",f);
    if(a/10>=1&&a/100<1)
        e=(int)(a/10);
        f=(int)(a%10);
        printf("  该数是两位数\n");
          printf("十位上的数字是:%d\n",e);
        printf("个位上的数字是:%d\n",f);
    if(a%10>=1&&a/10<1)
        f=(int)(a%10);
        printf("该数是一位数\n");
        printf("个位上的数字是:%d\n",f);
    return 0;
}

[此贴子已经被作者于2016-11-18 10:19编辑过]

2 回复
#2
yangfrancis2016-11-19 21:56
回复 楼主 白泽
弄复杂了。用输入的数a对10取余,得到个位值,a/=10,再对10取余,得到十位值。依次得到其他数位的值,如果/=10等于0,则所有数位已识别完毕。
#3
白泽2016-11-20 21:44
回复 2楼 yangfrancis
嗯嗯,后来我用case来做了,谢谢!
1