本程序的简单易懂,此程序运用“%”取余,“/”除数取整的方法先得到个十百千万上的每一位数,用一维数组只是为了减少变量,以及简化输出。希望对大家解题有帮助,感谢参照!
#include"stdio.h"
int main()
{
int a[5],b,i;
scanf("%d",&b);
a[0]=b%10; //单独提取出每一位数,个位数
a[1]=b/10%10; //十位数
a[2]=b/100%10; //百位数
a[3]=b/1000%10; //千位数
a[4]=b/10000; //万位数
//分五种情况,进行逆序判断位数,并将每位数输出出来,记得换行
//if语句:从高位往低位分支
if(a[4]!=0)
{
printf("5\n");
printf("%d %d %d %d %d\n",a[4],a[3],a[2],a[1],a[0]);
}
else if(a[3]!=0)
{
printf("4\n");
printf("%d %d %d %d\n",a[3],a[2],a[1],a[0]);
}
else if(a[2]!=0)
{
printf("3\n");
printf("%d %d %d\n",a[2],a[1],a[0]);
}
else if(a[1]!=0)
{
printf("2\n");
printf("%d %d\n",a[1],a[0]);
}
else {
printf("1\n");
printf("%d",a[0]);
}
for(i=0;i<5;i++) //将输入的原数逆序输出
{
if(a[i]!=0)
printf("%d",a[i]);
}
return 0;
}
0.0分
3 人评分