请输入一个不超过5位的正整数,程序将判断该数的位数并分解出每一位数字。
C语言程序如下:
#include
int main()
{
unsigned int a;//存储由键盘输入的数据
unsigned char c;//存储输入数据位数
printf("请输入一个不多于5位的正整数:");
scanf("%u",&a);
if(a>0&&a<100000)
{
if(a/10000!=0) c=5;
else
{
if(a/1000!=0) c=4;
else
{
if(a/100!=0) c=3;
else
{
if(a/10!=0) c=2;
else c=1;
}
}
}
switch(c)
{
case 1:printf("%u是%u位数,个位数是%u",a,c,a);break;
case 2:printf("%u是%u位数,个位数是%u、十位数是%u",a,c,a%10,a/10);break;
case 3:printf("%u是%u位数,个位数是%u、十位数是%u、百位数是%u",a,c,a%10,a%100/10,a/100);break;
case 4:printf("%u是%u位数,个位数是%u、十位数是%u、百位数是%u、千位数是%u",a,c,a%10,a%100/10,a%1000/100,a/1000);break;
case 5:printf("%u是%u位数,个位数是%u、十位数是%u、百位数是%u、千位数是%u、万位数是%u",a,c,a%10,a%100/10,a%1000/100,a%10000/1000,a/10000);break;
}
}
else printf("输入的数据不符合条件");
return 0;
}
程序运行结果如下:
注:程序运行输入的参数可修改,读者可以试着输入不同的数据验证程序的正确性。
程序中如有不妥之处,也欢迎大家批评指正!!!