今天搞了一个ACM上的小作业,
#include<stdio.h>
int main()
{
int a,m=0,n,i,b=1,c=1,d=10;
scanf("%d",&a);
for(i=1;i<=5;i++)
{
if(a/c!=0)
m++;
c*=10;
}
printf("%d\n",m);
for(i=1;i<=m-1;i++)
b*=10;
for(i=1;i<=m-1;i++)
{
printf("%d ",(a/b)%10);
b/=10;
}
printf("%d\n",a%10);
for(i=1;i<=m;i++)
{printf("%d",(a%d)/(d/10));
d*=10;}
}
起初没有注意到for循环里的赋初值和终止条件和循环变量的关系,把三个for循环都搞错了,写成了for(i=1;i<=m;i*10);for(i=b;i<=m;i*10)这种,导致循环只执行一次或零次。搞了好久最后终于看到了这个错误。