思路:
- 在求整数位数时,我们可以通过整数n/10进行的次数来判断位数
- 在正序输出整数时,例:1234,先将1234/1000=1,保留234,再将234/100=2,34/10=3,3/10=3,依次进行按位输出
- 在逆序输出整数时,例:1234,1234%10=4,保留123,再将123%10=3,12%10=2,1%10=1,依次输出
#include<stdio.h>
int GetFigures(int n)
{
int count = 0;
do
{
count++;
n /= 10;//丢弃个位 1234/10=123
}while(n != 0);
return count;
}
void PrintOrder(int n) //正序输出
{
int count;
count = GetFigures(n);
int power = 1; //函数调用
for(int i=0;i<count-1;i++) //将位数进行转换
{
power *= 10;//power = power*10;
}
do
{
printf("%d ",n/power);//得到最高位
n %= power;//丢弃最高位
power /= 10;
}while(n!=0);
printf("\n");
}
void PrintReverse(int n) //逆序输出
{
if(n < 0) //如果整数小于0
{
printf("-");
n = -n;
}
do
{
printf("%d ",n%10); //得到个位数字
n /= 10; //丢弃个位数字
}while(n!=0);
printf("\n");
}
int main()
{
printf("位数:%d\n",GetFigures(1234)); //位数
PrintOrder(1234); //正序
PrintReverse(1234); //逆序
return 0;
}
运行结果: