原题链接:[编程入门]数字的处理与判断
解题思路以及注意事项:
每一个程序员都有自己独特的写法,针对同一问题的解法也是仁者见仁,智者见智,这道题就深刻地阐释了这个真理。
好,下面大家看看小方的代码,小方会在代码之中给大家讲解小方的解题思路!
实例代码:
#include"stdio.h"
int main()
{
int x,i,item=10000,number,size;//x用来存用户输入的数,i为控制循环常用的数,item为计算位数的数
scanf("%d",&x); //number为替代x的数,以保证x的完整,size为存位数的数,以便后面用
for(i=5;i>0;i--,item/=10)
{
if(x/item) // 循环判断位数
{
printf("%d\n",i);
size=i;
break;
}
}
for(i=0,item=1;i<size;i++)
{
item*=10; //得出像10000 1000 100 10这样的数,用到下面的循环中去
}
for(i=5,number=x;i>0 && number!=0;i--,item/=10)
{
if(number/item==0)continue; //保证小于五位的数分开输出前面不会有0
if(i==1)
printf("%d",number/item);//最后一位后面没有0
else
printf("%d ",number/item);//输出
number%=item;
}
printf("\n");
for(i=5,number=x;i>0&&number!=0;i--)//逆序输出,相比前面的简单很多,相信大家看的懂
{
printf("%d",number%10);
number/=10;
}
return 0;
}还有不懂的请在评论区留言,小方会为您解答
0.0分
30 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include"stdio.h" int main() { int a,j,i,item=10000,b,number; scanf("%d",&a); number=a; for(j=5;j>0;j--,item/=10) { if(a/item) { printf("%d\n",j); break; } } for(i=0;i<j;i++,item/=10){ if(i==0&&a/item==0) continue; if(i>0&&i<j-1&&a/item==0) printf("0 "); if(i==j-1) printf("%d",a/item); else if(a/item!=0) printf("%d ",a/item); a=a%item;} printf("\n"); while(number) { printf("%d",number%10); number/=10;} return 0; }#include<stdio.h> int main() { int a,b,d[5],c,e,f; while(scanf("%d",&a)==1) { if(a>99999) { printf("try again\n"); continue; } for(b=10000,e=5;a/b<1;b/=10,e--); printf("%d\n",e); for(b=10,c=0;c<e;c++,a/=10) { d[c]=a%b; if(c==e-1) for(f=c;f>=0;f--) { printf("%d",d[f]); if(f!=0) printf(" "); } } printf("\n"); for(c=0;c<e;c++) { printf("%d",d[c]); } printf("\n"); } return 0; }#include"stdio.h" int main() { int n,m,i=0,k=1; scanf("%d",&n); m=n; while(m/10!=0) { m=m/10; i++; } printf("%d\n",i+1); for(;i>0;i--) { k=k*10; } m=n; while(k) { printf("%d ",m/k); m=m%k; k=k/10; } printf("\t\n"); m=n; while(m%10!=0) { printf("%d",m%10); m=m/10; } return 0; } 后写了一个,能通过#include"stdio.h" #include"string.h" int main() { int i,n; char a[6]; gets(a); n=strlen(a); printf("%d\n",n); for(i=0;i<=n;i++) { printf("%c ",a[i]); } printf("\n"); for(i=n-1;i>=0;i--) { printf("%c",a[i]); } return 0; } 我用字符数组处理为什么评论我答案错误@maina0810 输出结果对的,电脑判断如果格式不对的话,请把 “ printf("请输入一个不大于5位的数\n");”去掉,还有"%d "这里应该多了一个空格#include<stdio.h> int main() { int i,I,x,y,z,a=1,b,c=0; scanf("%d",&x); z=y=x; for(i=0;x>0;i++) { x/=10; } printf("%d\n",i); for(I=1;I<i;I++) { a*=10; } int n; for(i=1;i<=I;i++) { n=y/a; y=y%a; a/=10; if(i!=I) printf("%d ",n); else printf("%d",n); } printf("\n"); for(i=1;z>0;i++) { b=z%10; c=10*c+b; z/=10; } printf("%d",c); return 0; }