给一个不多于5位数的正整数
(1)求它是几位数
(2)分别输出每一位数字
(3)按逆序输出各数字
#include<stdio.h>
#include<math.h>
// 1.统计一个整数n是几位数
/*
int GetFigures(int n)
{
int i=0;
if(n==0)
return 1;
do
{
n/=10;
i++;
}while(n!=0);
return i;
}
int main()
{
printf("%d\n",GetFigures(12345));
printf("%d\n",GetFigures(123456789));
printf("%d\n",GetFigures(0));
printf("%d\n",GetFigures(-12345789));
}
*/
//2.顺序输出
void PrintOrder(int n)
{
int count = GetFigures(n);
int power=(int)pow(10.0,(count-1));
do
{
printf ("%d",n/power);
n%=power;
power/=10;
}while(n!=0);
printf("\n");
}
int main()
{
printf("%d\n",PrintOrder(12345));
printf("%d\n",PrintOrder(123456789));
printf("%d\n",PrintOrder(0));
printf("%d\n",PrintOrder(-12345789));
}
/* 3.一个n整数逆序输出
void printreverse(int n)
{
if (n<0)
{
printf("-");
n=-n;
}
do
{
printf("%d",n%10);//输出个位数
n/=10;//丢弃个位数
}while(n!=0);
printf("/n");
}
int main()
{
printf("%d\n",printreverse(12345));
printf("%d\n",printreverse(123456789));
printf("%d\n",printreverse(-12345789));
}