给出一个数字
(1)求出它是几位数
(2)分别输出每一位数字
(3)按逆序输出各位数字
(1)求出它是几位数
方法:求一个数是几位数,每次给它除以10,然后丢弃余数,直到为0结束。如123÷10=12(丢弃余数)
具体操作过程如下:
#include<stdio.h>
#include<math.h>
int Findhow(int n )
{
int tmp = 0;
if (n == 0)
{
tmp = 1;
}
while ( n != 0)
{
n /= 10;
tmp++;
}
printf("这个数是%d位数\n", tmp);
}
(2)分别输出每一位数字
方法:我们需要根据第一问的方法知道这个数是几位数,然后丢弃最高位得最高位,直到为0
具体操作过程如下:
void zxsc(int n)
{
int tmp = Findhow(n);
for (int i = tmp; i != 0; i--)
{
int j = n / pow(10.0, i - 1);
printf("%4d", j);
n = n-(j*pow(10.0, i - 1));
}
printf("\n");
}
(3)按逆序输出各位数字
方法:将当前数字%10,并输出,相当于得到个位数并将数字以此输出,以此循环便可得到逆序
(如:321->32:321/10=32)
void nxsc(int n)
{
do
{
printf("%d", n % 10);
n /=10;
} while (n != 0);
printf("\n");
}