c程序编译无错但无法运行请问错在哪里?

c语言习题:给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数是321,应输出123。
(求大佬指点,我是初学者)
我的答案:
#include
main()
{
int x,a,b,c,d,e;
printf("please input a number:");
scanf("%d,&x");
if (x>0&&x<=10) printf("one-digit");
printf("%d%d\n",x,x);
if (x>10&&x<=100) printf("twe-digit");
a=x/10;b=x%10;
printf("%d%d\n",a,b);
printf("%d%d",b,a);
if (x>100&&x<=1000) printf("three-digit");
a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;
printf("%d%d%d\n",a,b,c);
printf("%d%d%d",c,b,a);
if (x>1000&&x<=10000) printf("four-digit");
a=x/1000;b=(x-a*1000)/100;c=(x-a*1000-b*100)/10;d=x-a*1000-b*100-c*10;
printf("%d%d%d%d\n",a,b,c,d);
printf("%d%d%d%d",d,c,b,a);
if (x>10000&&x<=100000) printf("five-digit");
a=x/10000;b=(x-a*10000)/1000;c=(x-a*10000-b*1000)/100;
d=(x-a*10000-b*1000-c*100)/10;e=x-a*10000-b*1000-c*100-d*10;
printf("%d%d%d%d%d\n",a,b,c,d,e);
printf("%d%d%d%d%d",e,d,c,b,a);

}

编译没有问题但运行不出结果,请问问题出在哪里,该怎么改?

2个回答

#include<stdio.h>
int main()
{
    int x,a,b,c,d,e;
    printf("please input a number:");
    scanf("%d",&x);
    if (x > 0 && x <= 10) {
        printf("one-digit");
        printf("%d\n", x);
    }else if(x <= 100) {
        printf("twe-digit");
        a=x/10;b=x%10;
        printf("%d%d\n",a,b);
        printf("%d%d\n",b,a);
    }else if (x <= 1000) {
        printf("three-digit");
        a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;
        printf("%d%d%d\n",a,b,c);
        printf("%d%d%d\n",c,b,a);
    }else if (x <= 10000) {
        printf("four-digit");
        a=x/1000;b=(x-a*1000)/100;c=(x-a*1000-b*100)/10;d=x-a*1000-b*100-c*10;
        printf("%d%d%d%d\n",a,b,c,d);
        printf("%d%d%d%d\n",d,c,b,a);
    }else if (x <= 100000) {
        printf("five-digit");
        a=x/10000;b=(x-a*10000)/1000;c=(x-a*10000-b*1000)/100;
        d=(x-a*10000-b*1000-c*100)/10;e=x-a*10000-b*1000-c*100-d*10;
        printf("%d%d%d%d%d\n",a,b,c,d,e);
        printf("%d%d%d%d%d\n",e,d,c,b,a);
    }else {
        printf("wrong input");
    }
    return 0;
}

按你给出的这个题目,我觉得可以用数组进行编写

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐