#include<stdio.h>
int main()
{
//个(即一位数)
int unit_digit;
//十(即两位数)
int double_digit;
//百(即三位数)
int three_digit;
//千(即四位数)
int four_digit;
//万(即五位数)
int five_digit;
//几位数
int number_digit;
//输入
int enter_number;
printf("输入一个正整数(不多于五位):");
scanf_s("%d", &enter_number);
//判断
if (enter_number > 9999)
{
//几位数的输出
number_digit = 5;
printf("几位数:%d\n", number_digit);
//每一位数字的计算
five_digit = enter_number / 10000;
four_digit = (enter_number - five_digit * 10000) / 1000;
three_digit = (enter_number - five_digit * 10000 - four_digit * 1000) / 100;
double_digit = (enter_number - five_digit * 10000 - four_digit * 1000 - three_digit * 100) / 10;
unit_digit = (enter_number - five_digit * 10000 - four_digit * 1000 - three_digit * 100 - double_digit * 10) / 1;
//每一位数字的输出
printf("万:%d\n", five_digit);
printf("千:%d\n", four_digit);
printf("百:%d\n", three_digit);
printf("十:%d\n", double_digit);
printf("个:%d\n", unit_digit);
//正序
printf("正序:%d%d%d%d%d\n", five_digit, four_digit, three_digit, double_digit, unit_digit);
//逆序
printf("逆序:%d%d%d%d%d\n", unit_digit, double_digit, three_digit, four_digit, five_digit);
}
else if (enter_number > 999 && enter_number<10000)
{
//几位数的得出
number_digit = 4;
printf("几位数:%d\n", number_digit);
//每一位数字的计算
four_digit = enter_number / 1000;
three_digit = (enter_number - four_digit * 1000) / 100;
double_digit = (enter_number - four_digit * 1000 - three_digit * 100) / 10;
unit_digit = (enter_number - four_digit * 1000 - three_digit * 100 - double_digit * 10) / 1;
//每一位数字的输出
printf("千:%d\n", four_digit);
printf("百:%d\n", three_digit);
printf("十:%d\n", double_digit);
printf("个:%d\n", unit_digit);
//正序
printf("正序:%d%d%d%d\n", four_digit, three_digit, double_digit, unit_digit);
//逆序
printf("逆序:%d%d%d%d\n", unit_digit, double_digit, three_digit, four_digit);
}
else if (enter_number > 99 && enter_number<1000)
{
//几位数的得出
number_digit = 3;
printf("几位数:%d\n", number_digit);
//每一位数字的计算
three_digit = enter_number / 100;
double_digit = (enter_number - three_digit * 100) / 10;
unit_digit = (enter_number - three_digit * 100 - double_digit * 10) / 1;
//每一位数字的输出
printf("百:%d\n", three_digit);
printf("十:%d\n", double_digit);
printf("个:%d\n", unit_digit);
//正序
printf("正序:%d%d%d\n", three_digit, double_digit, unit_digit);
//逆序
printf("逆序:%d%d%d\n", unit_digit, double_digit, three_digit);
}
else if (enter_number > 9 && enter_number<100)
{
//几位数的得出
number_digit = 2;
printf("几位数:%d\n", number_digit);
//每一位数字的计算
double_digit = enter_number / 10;
unit_digit = (enter_number - double_digit * 10) / 1;
//每一位数字的输出
printf("十:%d\n", double_digit);
printf("个:%d\n", unit_digit);
//正序
printf("正序:%d%d\n", double_digit, unit_digit);
//逆序
printf("逆序:%d%d\n", unit_digit, double_digit);
}
else
{
//几位数的得出
number_digit = 1;
printf("几位数:%d\n", number_digit);
//每一位数字的计算
unit_digit = enter_number / 1;
//每一位数字的输出
printf("个:%d\n", unit_digit);
//正序
printf("正序:%d\n", unit_digit);
//逆序
printf("逆序:%d\n", unit_digit);
}
return 0;
}