给一个不多于5位数的正整数,要求: 1.求出它是几位数; 2.分别输出每一位数字; 3.按逆序输出各位数字,例如原数123,逆序321.

#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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值