解题思路:
题目中已经说是一个不多于5位的整数,所以就可以直接利用这个条件
注意事项:
if语句的正确使用,switch语句的使用以及数组的使用
参考代码:

第一种

#include <stdio.h>
void main()
{
 int a,b,c,d,e,count,n,x=0;
 scanf("%d",&n);
 if(n>=10000)
  count=5;
 else if(n>=1000)
  count=4;
 else if(n>=100)
  count=3;
 else if(n>=10)
  count=2;
 else
  count=1;
 printf("%d\n",count);
 a=n/10000;
 b=(n-a*10000)/1000;
 c=(n-a*10000-b*1000)/100;
 d=(n-a*10000-b*1000-c*100)/10;
 e=n-a*10000-b*1000-c*100-d*10;
 switch(count)
 {
 case 5:printf("%d %d %d %d %d\n",a,b,c,d,e);break;
 case 4:printf("%d %d %d %d\n",b,c,d,e);break;
 case 3:printf("%d %d %d\n",c,d,e);break;
 case 2:printf("%d %d\n",d,e);break;
 case 1:printf("%d\n",n);break;
 default:printf("输入错误!\n");break;
 }
 do
 {
  x=x*10+n%10;
  n/=10;
 }while(n!=0);
 printf("%d\n",x);
}

第二种(与第一种有略微区别)

#include <stdio.h>
void main()
{
 int a,b,c,d,e,count,n,x;
 count=0;
 scanf("%d",&n);
 x=n;
    while(x!=0)
    {
        count++;
        x=x/10;
    }
 printf("%d\n",count);
 a=n/10000;
 b=(n-a*10000)/1000;
 c=(n-a*10000-b*1000)/100;
 d=(n-a*10000-b*1000-c*100)/10;
 e=n-a*10000-b*1000-c*100-d*10;
 switch(count)
 {
 case 5:printf("%d %d %d %d %d\n",a,b,c,d,e);break;
 case 4:printf("%d %d %d %d\n",b,c,d,e);break;
 case 3:printf("%d %d %d\n",c,d,e);break;
 case 2:printf("%d %d\n",d,e);break;
 case 1:printf("%d\n",n);break;
 default:printf("输入错误!\n");break;
 }
 do
 {
  x=x*10+n%10;
  n/=10;
 }while(n!=0);
 printf("%d\n",x);
}

第三种(用数组)

#include <stdio.h>
int main()
{
    int a,i=0,j;
    int b[5];
    scanf("%d",&a);
    while(a!=0)
    {
        b[i]=a%10;
        a=a/10;
        i++;
    }
    printf("%d\n",i);
    for(j=i-1;j>=0;j--)
    printf("%d ",b[j]);
    printf("\n");
    for(j=0;j<i;j++)
    printf("%d",b[j]);
    return 0;
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论