Memo_YD
2020-03-13 01:16
采纳率: 100%
浏览 298

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条回答 默认 最新

  • 胖狗子修行之路 2020-03-13 09:39
    已采纳
    #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;
    }
    
    
    点赞 打赏 评论
  • 按你给出的这个题目,我觉得可以用数组进行编写

    点赞 打赏 评论