判断一个数值的位数,分别输出数字和其逆序数字。

给一个不多于5位数的正整数,要求:

  1. 求出它是几位数;
  2. 分别输出每一位数字;
  3. 按逆序输出各位数字,例如原数为321,应输出123。

利用分支语句判断位数;
定义万位数为myriad,千位数为thousand,百位数为hundred,十位数为ten,个位数为indiv,利用switch选择语句判断并输出逆序数值。

#include<stdio.h>

int main()
{
    
    
	int a=0;
	int place=0;
	int myriad,thousand,hundred,ten,indiv;
	printf("请输入一个小于等于五位数的正整数:\n");
	scanf("%d",&a);
	if(a>9999)
		place=5;
	else if(a>999)
		place=4;
	else if(a>99)
		place=3;
	else if(a>9)
		place=2;
	else
		place=1;
	printf("该数为%d位数\n",place);
	printf("每一位数字为:%d\n",a);
	myriad=a/10000;
	thousand=(int)(a-myriad*10000)/1000;
	hundred=(int)(a-myriad*10000-thousand*1000)/100;
	ten=(int)(a-myriad*10000-thousand*1000-hundred*100)/10;
	indiv=(int)(a-myriad*10000-thousand*1000-hundred*100-ten*10);
	switch(place)
	{
    
    
	case 5:
			printf("该数值的逆序数为:%d%d%d%d%d\n",indiv,ten,hundred,thousand,myriad);
			break;
	case 4:
		    printf("该数值的逆序数为:%d%d%d%d\n",indiv,ten,hundred,thousand);
			break;
	case 3:
		    printf("该数值的逆序数为:%d%d%d\n",indiv,ten,hundred);
			break;
	case 2:
		    printf("该数值的逆序数为:%d%d\n",indiv,ten);
			break;
	case 1:
		    printf("该数值的逆序数为:%d\n",indiv);
			break;
	}
	return 0;
}

运行结果:
在这里插入图片描述
菜菜的代码,希望能够帮助到你哟!

猜你喜欢

转载自blog.csdn.net/Sconnie/article/details/113244026