#include <stdio.h>
//十进制数,顺序、逆序输出每位数字;
int GetFigures(int n)//得到数字的位数
{
int count = 0;//初始化位数
do
{
n /= 10;//丢掉个位数字
count++;
}while(n!=0);//n>0,cout(位数)最低为1
return count;
}
void PrintReverse(int n)//逆序打印每位数字
{
if(n < 0)
{
printf("- ");
n = -n;
}
do
{
printf("%d ",n%10);//输出每位数字
n /= 10;//丢掉个位数字
}while(n != 0);
printf("\n");
}
void PrintOrder(int n)//顺序打印每位数字
{
if(n<0)
{
printf("- ");
n= -n;
}
int power = 1;//初始化权数
int count = GetFigures(n);//调用GetFigures(n)得到位数并赋值
for(int i=0;i<count-1;i++)//权数增加10的(conunt-1)次方
{
power *= 10;
}
do
{
printf("%d ",n/power);//打印最高位数字
n %= power;//丢弃最高位
power /= 10;//权数减一位
}while(n != 0);
printf("\n");
}
int main()
{
PrintOrder(1203456789);
PrintOrder(10203);
PrintOrder(0);
PrintReverse(-123456789);
PrintOrder(-123);
return 0;
}
//十进制数,顺序、逆序输出每位数字;
int GetFigures(int n)//得到数字的位数
{
int count = 0;//初始化位数
do
{
n /= 10;//丢掉个位数字
count++;
}while(n!=0);//n>0,cout(位数)最低为1
return count;
}
void PrintReverse(int n)//逆序打印每位数字
{
if(n < 0)
{
printf("- ");
n = -n;
}
do
{
printf("%d ",n%10);//输出每位数字
n /= 10;//丢掉个位数字
}while(n != 0);
printf("\n");
}
void PrintOrder(int n)//顺序打印每位数字
{
if(n<0)
{
printf("- ");
n= -n;
}
int power = 1;//初始化权数
int count = GetFigures(n);//调用GetFigures(n)得到位数并赋值
for(int i=0;i<count-1;i++)//权数增加10的(conunt-1)次方
{
power *= 10;
}
do
{
printf("%d ",n/power);//打印最高位数字
n %= power;//丢弃最高位
power /= 10;//权数减一位
}while(n != 0);
printf("\n");
}
int main()
{
PrintOrder(1203456789);
PrintOrder(10203);
PrintOrder(0);
PrintReverse(-123456789);
PrintOrder(-123);
return 0;
}