确实很简单。
int main()
{
int n,i,j;
n = 20;
i = 0;
char ch[8];
do
{
ch[i] = (n%2) + '0';
n /= 2;
// SIMPLE WAY
if(n != 0)
i++;
}
while(n != 0);
for(j=0; j<=i; j++)
{
printf("%c",ch[i-j]);
}
return 0;
}
但我不喜欢这种方式
我尝试了以下方式,但代码不好
int main()
{
int n,i,j;
n = 20;
i = 0;
char ch[8];
do
{
ch[i] = (n%2) + '0';
n /= 2;
}
while(n != 0 && i++); // THIS
for(j=0; j<=i; j++)
{
printf("%c",ch[i-j]);
}
return 0;
}
仅当使用最佳方式循环为真时,如何才能使值增加?或者只是正确的第二种方式while(n != 0 && i++)
好吧,你总是可以这样做:
do {
// code
} while(n != 0 && ++i);
通过这种方式,i
在第一部分后加权&&
计算为TRUE,并且&&
应用到n != 0
和更新的版本i
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句