解题思路:三项功能逐步实现,位数,间隔的输出每一位,逆序。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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复