该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
de
int main()
{
int a,b,c,d,e,f;
printf("输入一个不多于5位的正整数:");
scanf("%d",&a);
b=a/10000;
c=(a-b*10000)/1000;
d=(a-b*10000-c*1000)/100;
e=(a-b*10000-c*1000-d*100)/10;
f=a-b*10000-c*1000-d*100-e*10;
{
if(a>99999||a<1)
printf("请输入正确的数据:\n");
scanf("&d",&a);
else
if(b>0&&b<10)
printf("它的位数是:5位数\n");
else
if(c>0&&c<10)
printf("它的位数是:4位数\n");
else
if(d>0&&d<10)
printf("它的位数是:3位数\n");
else
if(e>0&&e<10)
printf("它的位数是:2位数\n");
else
if(f>0&&f<10)
printf("它的位数是:1位数\n");
else
printf("请输入正确的数据:\n");
scanf("&d",&a);
} //求出它是几位数
{
if(a>99999||a<1)
printf("请输入正确的数据:\n");
scanf("&d",&a);
else
if(b>0&&b<10)
printf("它的每一位数字分别是:%d,%d,%d,%d,%d\n",b,c,d,e,f);
else
if(c>0&&c<10)
printf("它的每一位数字分别是:%d,%d,%d,%d\n",c,d,e,f);
else
if(d>0&&d<10)
printf("它的每一位数字分别是:%d,%,d,%d\n",d,e,f);
else
if(e>0&&e<10)
printf("它的每一位数字分别是:%d,%d\n",e,f);
else
if(f>0&&f<10)
printf("它的每一位数字分别是:%d\n",f);
else
printf("请输入正确的数据:\n");
scanf("&d",&a); //分别输出它的每一位数字
}
{
if(a>99999||a<1)
printf("请输入正确的数据:\n");
scanf("&d",&a);
else
if(b>0&&b<10)
printf("按逆序输出各位数字: %d,%d,%d,%d,%d\n",f,e,d,c,b);
else
if(c>0&&c<10)
printf("按逆序输出各位数字: %d,%d,%d,%d\n",f,e,d,c);
else
if(d>0&&d<10)
printf("按逆序输出各位数字: %d,%d,%d\n",f,e,d);
else
if(e>0&&e<10)
printf("按逆序输出各位数字: %d,%d\n",f,e);
else
if(f>=0&&f<10)
printf("按逆序输出各位数字: %d\n",f);
else
printf("请输入正确的数据:\n");
scanf("&d",&a);
} //按逆序输出各位数字
return 0;
}
题目的原意是给一个不多于5位的正整数,满足要求:
1.求出它是几位数
2.分别输出每一位数字
3.按逆序输出给位数字,例如原数为321,应输出123
本菜的问题是:
1.为什么我在加了上面程序里面加粗的部分之后,程序检查时会提示错误?
2.感觉自己的这个程序好冗余啊,有没有上面更简单一点的,这个我自己弄完了,看到都觉得眼睛有点晕啊,太长了,有什么办法精简点啊?
以上就是我的问题了,求大家指点指点,特别欢迎笨蛋老师大驾光临,指点我啊。