/********************************************************************************************
*		  题目:给一个不多与5位的正整数,要求:                                             *
*					①求出他是几位数                                                        *
*						②分别输出每一位数                                                  *                                                             
*							③按逆序输出个位数字,例如原数位321,应输出123。                *
********************************************************************************************/
#include<stdio.h>
int main()
{
	int gen, ge, shi, bai, qian, wan,wei;
	gen=0;ge=0;shi=0;bai=0;qian=0;wan=0;wei=0;
	do
	{
		printf("请属于一个5位内的数字");
		scanf("%d",&gen);
	}
	while(!(gen<=99999 && gen>=0));//判断输入数字,是否符合题目要求标准,错误则从新输入。
		
		if(gen>10000&&gen<99999) //判断位数并输入
			{
				wei=5; //wei变量,用于下面判断输入的位数,选择输出方式使用。
				printf("输入的是5位数字\n");
			}
		else if(gen<9999&&gen>1000)
				{	
					wei=4;
					printf("输入的是4位数字\n");
				}
		 else if(gen<999&&gen>100)
				{
					wei=3;
					bai=(gen-wan*10000-qian*1000)/100;
					printf("输入的是3位数字\n");
				}
		else if(gen<99&&gen>10)
				{
					wei=2;
					printf("输入的是2位数字\n");
				}
		else if(gen<9&&gen>0)
				{
					wei=1;
					printf("输入的是1位数字\n");
				}
	
		switch(wei)//根据位数判断输出的样式。
		{
		case 5: wan=gen/10000;
				qian= (gen-wan*10000)/1000;
				bai = (gen-wan*10000-qian*1000)/100;
				shi = (gen-wan*10000-qian*1000-bai*100)/10;
				ge  = (gen-wan*10000-qian*1000-bai*100-shi*10);
				break;
		
		case 4:	qian= (gen-wan*10000)/1000;
				bai = (gen-wan*10000-qian*1000)/100;
				shi = (gen-wan*10000-qian*1000-bai*100)/10;
				ge  = (gen-wan*10000-qian*1000-bai*100-shi*10);
				break;
		
		case 3:	bai= (gen-wan*10000-qian*1000)/100;
				shi= (gen-wan*10000-qian*1000-bai*100)/10;
				ge = (gen-wan*10000-qian*1000-bai*100-shi*10);
				break;
		
		case 2:	shi= (gen-wan*10000-qian*1000-bai*100)/10;
				ge = (gen-wan*10000-qian*1000-bai*100-shi*10);
				break;
		
		case 1:ge =  (gen-wan*10000-qian*1000-bai*100-shi*10);
				break;
		}
	printf("原序输出:万位:%d 千位:%d 百位:%d 十位:%d 个位:%d\n",wan,qian,bai,shi,ge);
	
	printf("逆序输出:个位:%d 十位:%d 百位:%d 千位:%d 万位:%d\n",ge,shi,bai,qian,wan);
	return 0;
}