求正整数的位数及正序逆序输出
正整数,在计算机中是作为一个整体来进行存储的。而本次将正整数正序输出和逆序输出都需要我们将其每一位上的数字单独提取出来,按照相应的次序进行输出。为了提取正整数每一位的数字,我们可以借助for循环根据10进制数字的数学关系用相应的计算得出。而为了方便确定for循环的起点和终点,我们会优先求出该整数的位数,在此基础上再进行前面的操作。
求整数的位数
在这里,我们单独建立一个函数Getnum来达到目的。
不但方便了以后的调用,而且不论我们在子函数中对该正整数进行什么样的操作,都不会影响主函数中数字本身的值。(相信大家都会明白吧,参数问题啦参数问题啦,实在不行就记住吧,记住还不行吗~)
话不多说,代码如下:
int Getnum(int n)
{
int i=0;
while(n!=0)
{
n/=10;
i++;
}
return i;
}
为什么会实现呢?
首先,我们要明确整除(/)这一运算。整除是不存在小数的,整数部分会被保留,小数部分就被抛弃了,比如123/10就只会剩下12。
此外,我们设置了帮助我们计数的i,n(我们需要处理的正整数,相信大家都能看出来,以后就用n代替了)在while循环中每次都整除10,相当于从个位开始每次循环都丢弃一位数字,每丢一次i就加1,每丢一次i就加1。
最后,i就是n各位数中能被我们丢掉的非0数字的个数了。
正序输出和逆序输出
好了,正菜来了!
1.正序输出
相信大家都已经等不及了吧,先上代码:
void ForwardPrint(int n)//正序输出
{
for(int i=Getnum(n);i>=1;i--