大家帮我看看这段程序为什么出错?(C语言)

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:53:05
要实现的功能是输入一个五位以下的数字,输出位数,再一一列出各位数
谢谢!本人初学的~~

#include "stdio.h"
main()
{
int a,b,c,d,n;
scanf("%d",&a);
if ((a<=0)||(a>99999))
printf("so big or small");
else
{
if(10000<=a<=99999)
b=5;
else if(1000<=a<=9999)
b=4;
else if(100<=a<=999)
b=3;
else if(10<=a<=99)
b=2;
else
b=1;
printf("--%d--\n\n",b);
c=1;
n=b;
d=0;
while(n!=0)
{
c*=10;
if(a%c==0)
printf("0\n");
else
{
while(1)
{
a-=c/10;
d++;
if((a%c==0)||(a=0))
break;
}
printf("%d\n",n);
d=0;
n--;
}
}<

10000<=a<=99999 这样也行啊.编译会有警告的.
语法上没错,但有明显的语义错误.10000<=a的结果是布尔类型(就是0或1),怎么还能作为<=的左操作数呢
改为:
10000<=a && a<=99999

你写的有点复杂,看不太懂.改了一下
#include "stdio.h"
main()
{
int a,b;
scanf("%d",&a);
if ((a<=0)||(a>99999))
printf("so big or small");
else
{
if(10000<=a && a<=99999)
b=5;
else if(1000<=a && a<=9999)
b=4;
else if(100<=a && a <=999)
b=3;
else if(10<=a && a<=99)
b=2;
else
b=1;
printf("--%d--\n\n",b);
while(b!=0)
{
printf("%d\n",a % 10);
a /= 10;
b--;
}
}
}

是编译不通过还是什么?
运行出错

把问题说清楚