基于visual Studio2013解决C语言竞赛题之0418位数操作
题目
解决代码及点评
/************************************************************************/ /* 18. 给出一个不多于4位的正整数,要求:① 求出它是几位数 ② 分别打印出每一位数字 ③ 按逆序打印出各位数字。 */ /************************************************************************/ #include <stdio.h> #include <stdlib.h> int GetWS18(int num) // 打印位数函数 { int count=0; while(num) // 当num还大于0时,num除与10,这样当num是0时,循环次数就是它的位数 { count++; // 只要在循环体里累加就可以了 num/=10; } return count; } void RprintNum(int num) { while(num) // 反向打印,当num大于0时,打印最后一位,打印完最后一位后,除10去除最后一位 { printf("%d",num%10); num=num/10; } } void printNum(int num) // 正向打印 { int temp=1; while(num/temp>=10) // 首先求出最高位对应的最小整数 { temp*=10; } while(temp>=1) // 然后一位一位的打印 { printf("%d ",num/temp%10); temp/=10; // 打印一位把最高位对应额整数除与10 } } void main() { int num; printf("please input num"); scanf_s("%d",&num); // 获取输入 printf("\n"); printf("%d",GetWS18(num )); // 打印位数 printf("\n"); printNum(num); // 打印每位数 printf("\n"); RprintNum(num); // 反向打印 system("pause"); }
代码下载及其运行
代码下载链接:
http://download.csdn.net/detail/yincheng01/6641001
解压密码为c.itcast.cn
下载解压后用VS2013打开工程文件
点击 “本地Windows调试器” 执行
程序运行结果