#define _CRT_SECURE_NO_WARNINGS 1
//
// 输入一个数
// 1.求出它是几位数
// 2.分别输出它的每一位
// 3.逆序输出它
// 如,
// 输入:123
// 输出:3位 1 2 3 321
//
#include <stdio.h>
#include <math.h>
int Num_word(int a)
{
//1个数最少有1位,所以i定义为1
int i = 1;
while (a /= 10)
{
i++;
}
return i;
}
void Print_num(int a, int count)
{
int i = 0;
for (i = count - 1; i >= 0; i--)
{
//打印最高位
printf("%d ", a / (int)pow(10, i));
//去掉最高位
a %= (int)pow(10, i);
}
}
void Reverse_num(int a, int count)
{
int i = 0;
for (i = 0; i < count; i++)
{
//打印最低位
printf("%d", a % 10);
//去掉最低位
a /= 10;
}
}
int main()
{
int a = 0;
int count = 0;
scanf("%d", &a);
//求是几位数
count = Num_word(a);
printf("这个数字有%d位\n", count);
//打印它的每一位
Print_num(a, count);
printf("\n");
//逆序输出
Reverse_num(a, count);
return 0;
}
标签:count,10,num,输出,int,谭浩强,printf
From: https://blog.51cto.com/u_16509575/9419046