解题思路:
通过多个while语句进行数据的拆解
注意事项:
1.本程序是初级阶段代码,仅供理解;
2.思路不要局限于本程序,如正向输出一个整数的单个数字,也可使用递归函数(自行百度);
3.每个人都有不同的想法,没准你的想法也是对的哦!所以要努力解决自己的问题,不要放弃呐!
参考代码:
int num,i=0,tmp,tmp1,num1=0,tmp2=0;
scanf("%d",&num); //获取整数
tmp=num; //保存输入的值
while(num!=0){ //通过while循环检查数字个数
num=num/10; // 除运算将数据的最后一位移除,直至最后一位为0;
i++;
}
printf("%d\n",i);
num=tmp; //将保存的值重新赋值给输入变量
while(num!=0){
tmp2=tmp2*10+num%10; //实现对输入值得逆向重组。
num=num/10; //将数据的最后一位移除
}
num=tmp2; //经过上面的while循环得到tmp2的只是逆向重组的值
while(num!=0){ //将重组后的值逆向单个输出
tmp1=num%10;
num=num/10;
printf("%d",tmp1); //输出每次取余的结果
if(num!=0) //题目要求:最后一个数字后面没有空格
printf(" ");
}
printf("\n");
while(tmp!=0){
num1=num1*10+tmp%10; //同上,再写一遍,是因为要符合题目格式要求
tmp=tmp/10;
}
printf("%d",num1);
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复