[求助]一道有关循环和数组的程序不太明白.希望得到帮助.
当从键盘输入18时,下面的程序的运行结果是main()
{ int x,y,i,a[8],,j,u;
scanf("%d",&x);
y=x; i=0;
do
{ u=y/2
a[i]=y%2;
i++;y=u;
} while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}
答案是10010
do
{ u=y/2
a[i]=y%2;
i++;y=u;
} while(y>=1);
这几步程序我还勉强能理解,就是u=18/2=9
然后a[0]=0,因为9/2余数是0,然后i变成1,y变成9/2
以此类推,得出a[1]=1,a[2]=1,a[3]=1,
然后就不知道怎么办了?