解题思路:三项功能逐步实现,位数,间隔的输出每一位,逆序。1、设置记位器,每次除以10。2、利用if语句算出每一位数,间隔输出。3、在2的基础上把每一位数乘以定位的积相加之和进行输出。

注意事项:提前把输入的数存起来。

参考代码:

#include<stdio.h>

int main(){

int x;

scanf("%d",&x);

int y=x;

int n=0;

while(x>0){

x=x/10;

n++;

}

printf("%d\n",n);

x=y;

int g,s,b,q,w,z;

if(n==5){

w=x/10000;

z=x%10000;

q=z/1000;

z=z%1000;

b=z/100;

z=z%100;

s=z/10;

z=z%10;

g=z;

printf("%d %d %d %d %d\n",w,q,b,s,g);

    

}

if(n==4){

q=x/1000;

z=x%1000;

b=z/100;

z=z%100;

s=z/10;

z=z%10;

g=z;

printf("%d %d %d %d\n",q,b,s,g);

    

}

if(n==3){

b=x/100;

z=x%100;

s=z/10;

z=z%10;

g=z;

printf("%d %d %d\n",b,s,g);

    

}

if(n==2){

s=x/10;

z=x%10;

g=z;

printf("%d %d\n",s,g);

    

}

if(n==1){

g=x;

printf("%d\n",g);

    

}

if(n==5){

w=x/10000;

z=x%10000;

q=z/1000;

z=z%1000;

b=z/100;

z=z%100;

s=z/10;

z=z%10;

g=z;

g=g*10000;

s=s*1000;

b=b*100;

q=q*10;

printf("%d\n",g+s+b+q+w);     

}

if(n==4){

q=x/1000;

z=x%1000;

b=z/100;

z=z%100;

s=z/10;

z=z%10;

g=z;

g=g*1000;

s=s*100;

b=b*10;

printf("%d\n",g+s+b+q);

}

if(n==3){

b=x/100;

z=x%100;

s=z/10;

z=z%10;

g=z;

g=g*100;

s=s*10;

printf("%d\n",g+s+b);

    

}

if(n==2){

s=x/10;

z=x%10;

g=z;

g=g*10;

printf("%d\n",g+s);     

}

if(n==1){

g=x;

printf("%d\n",g);

    

}

return 0;

}


点赞(0)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论