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

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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮