解题思路: 1:判断位数!
2:输出(正序:要求空格/逆序)
注意事项: @@@怎样实现对位数的提取@@@我用了一个while(n/*是输入值,*/){
n /= 10;
s++;/*上面除一次,n的值就缩小10倍,直到为个位数后s的值就能表示输入值的位数为!*/
}
@@@ 后面输出就是按最笨的方法弄滴@@@
参考代码:
#include <stdio.h>
#include <math.h>
int main()
{
int s=0,j,n,a,b,c,d,e;
scanf("%d",&j);
n=j; //把j赋值给n,以保留aj
while(n){ //当n=0时,跳出循环
n/=10;
s++; //输入值得位数
}
//这后面这一段来个哥们帮忙优化一下
printf("%d\n",s);
if(j>=10000){
a=j/10000;
b=(j-a*10000)/1000;
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",a,b,c,d,e);
printf("%d%d%d%d%d",e,d,c,b,a);
}
else if(j>=1000){
b=(j-a*10000)/1000;
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",b,c,d,e);
printf("%d%d%d%d",e,d,c,b);
}
else if(j>=100){
c=(j-a*10000-b*1000)/100;
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d %d %d %d\n",c,d,e);
printf("%d%d%d",e,d,c);
}
else if(j>=10){
d=(j-a*10000-b*1000-c*100)/10;
e=j-a*10000-b*1000-c*100-d*10;
printf("%d %d\n",d,e);
printf("%d%d",e,d);
}
else{
e=j-a*10000-b*1000-c*100-d*10;
printf("%d\n",e);
printf("%d%d",e);
}
}
0.0分
0 人评分
【出圈】 (C语言代码)用单项循环链表浏览:769 |
IP判断 (C++代码)浏览:677 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:703 |
C语言训练-计算1977!* (C语言代码)浏览:899 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2468 |
川哥的吩咐 (C语言代码)浏览:875 |
汽水瓶 (C语言代码)浏览:608 |
震宇大神的杀毒软件 (C++代码)浏览:1117 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:622 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1036 |