代码如下:
#include<stdio.h>
#include<stdlib.h>
main()
{
long x;
int wan,qian,shi,bai,ge;
printf("请输入一个不多于5位的正整数:");
scanf("%ld",&x);
if(x>100000)
{
printf("\n抱歉,该数已超过五位数!");
exit(1);
}
else if(x<0)
{
printf("\n抱歉,该数不是正整数!");
exit(1);
}
else
{
wan=x/10000;
qian=x%10000/1000;
bai=x%1000/100;
shi=x%100/10;
ge=x%10;
if(wan!=0)
printf("该数有5为数,个位:%d,十位:%d,百位:%d,千位:%d,万位:%d\n",ge,shi,bai,qian,wan);
else if(qian!=0)
printf("该数有4为数,个位:%d,十位:%d,百位:%d,千位:%d\n",ge,shi,bai,qian);
else if(bai!=0)
printf("该数有3为数,个位:%d,十位:%d,百位:%d\n",ge,shi,bai);
else if(shi!=0)
printf("该数有2为数,个位:%d,十位:%d\n",ge,shi);
else if(ge!=0)
printf("该数有1为数,个位:%d\n",ge);
else
printf("该数为0.\n");
}
return 0;
运行结果如下:
分析:(1)逆序就是个十百千万的顺序输出。(2)不多于五位的正整数,不仅要考虑是不是五位数,还要考虑是不是正整数。