c新手吧 关注:8,586贴子:48,089
  • 14回复贴,共1

萌新求助qwq

只看楼主收藏回复


萌新自学的c语言qwq,题目是给一个不多于5位的正整数。要求:1求出它是几位数2分别输出每一位数字,按逆序输出各数字。
现在遇到个问题,为什么我输入123之后下面会输出3,2,1,0,0
3,2,1
3,2
我要怎么改qwq?


IP属地:广东1楼2017-02-03 20:14回复
    使用 sprintf 函数
    int n = 12345;
    char a[12];
    sprintf( a, " %d", n);
    printf("%s",a);
    printf("%c%c%c%c%c\n",a[5],a[4],a[3],a[2],a[1]);


    IP属地:内蒙古2楼2017-02-03 20:34
    收起回复
      看了一下代码,你给abcde分别赋了值,再用printf当然会把它们打印出来
      解决办法(参考):用一个数组将它们存起来,要逆向输出就用循环逐一打印就好了


      IP属地:广东3楼2017-02-03 21:41
      收起回复
        发源代码,不要截图


        IP属地:四川来自Android客户端13楼2017-02-04 14:49
        回复
          #include<stdio.h>
          int main()
          {
          long int a,b,c,d,e,p,x;
          scanf("%d",&x);
          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);
          if(a!=0)p=5;
          else if(a==0&&b!=0)p=4;
          else if(a==0&&b==0&&c!=0)p=3;
          else if(a==0&&b==0&&c==0&&d!=0)p=2;
          else p=1;
          printf("这是一个%d位数\n",p);
          if(p=5)
          printf("%d,%d,%d,%d,%d\n",e,d,c,b,a);
          else
          if(p=4)
          printf("%d,%d,%d,%d\n",e,d,c,b);
          if(p=3)
          printf("%d,%d,%d\n",e,d,c);
          if(p=2)
          printf("%d,%d\n",e,d);
          else
          printf("%d\n",e);
          return 0;
          }


          IP属地:广东20楼2017-02-05 16:10
          回复
            @真C语言菜鸡


            IP属地:广东22楼2017-02-05 16:11
            回复
              #include<stdio.h>
              int main()
              {
              long int a,b,c,d,e,p,x;
              scanf("%d",&x);
              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);
              if(a!=0)
              p=5;
              else if(a==0&&b!=0)
              p=4;
              else if(a==0&&b==0&&c!=0)
              p=3;
              else if(a==0&&b==0&&c==0&&d!=0)
              p=2;
              else
              p=1;
              printf("这是一个%d位数\n",p);
              switch(p)
              {
              case 5:printf("%d,%d,%d,%d,%d\n",e,d,c,b,a);break;
              case 4:printf("%d,%d,%d,%d\n",e,d,c,b);break;
              case 3:printf("%d,%d,%d\n",e,d,c);break;
              case 2:printf("%d,%d\n",e,d);break;
              default :printf("%d\n",e);
              }
              return 0;
              }


              IP属地:四川24楼2017-02-05 23:12
              回复
                不要问我原来的哪里错了,我也不知道。


                IP属地:四川25楼2017-02-05 23:13
                收起回复
                  请问楼主软件叫什么


                  IP属地:广东来自Android客户端26楼2017-02-07 19:40
                  收起回复
                    少两个ELSE


                    IP属地:辽宁来自iPhone客户端27楼2017-02-26 04:23
                    回复