一个数的各个位的输出,需要灵活利用%和/,并且对于每一个数值应该即取即用。
如使用for循环将数字从后往前输出
#include <stdio.h>
#include <math.h>
void Show(int n)
{
int i;
int tmp; //临时变量,用来保存获取数值
for(i=1;n!=0;i++)
{
tmp=n%10; //求最后一位的数,用%对其取余
printf("%d\n",tmp); //打印获取的临时变量
n/=10; //用/将最后一位数值丢弃
}
}
int main()
{
Show(12345);
return 0;
}
用while循环也可以做到
#include <stdio.h>
#include <math.h>
void PrintOrder(int n)
{
int m=n;
int count=1; //计算n的位数
for(int i=1;m!=0;i++)
{
count*=10;
m/=10;
}
count/=10; //多计算了一位,所以需要除以10
while(n != 0)
{
printf("%d ",n/count); //将n中第一位数输出
n %= count; //将首位数字去掉,保留后面的数
count /= 10; //将计数器减去一位
}
}
int main()
{
PrintOrder(12345);
return 0;
}