如题所述
先说为什么不能交换。10进制转换为2进制,短除法。
假如输入一个数n,我们第一步应该用n除以2,取模。在用第一步的商,作为除数,除以2,再取它的模,依次下去。
因为总共取了i次模,所以是j=i-1
假如输入一个数n,我们第一步应该用n除以2,取模。在用第一步的商,作为除数,除以2,再取它的模,依次下去。
因为总共取了i次模,所以是j=i-1
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-05
j=i-1是因为你上面的循环内a[i]赋值后i++才判断循环是否结束,故循环结束时i是多加了1的,所以赋值给j时得减1.
a[i]=n%2;
n=n/2;换了位置的话输出就是少了一位。n=n/2;是改变了n的值的,开始还没有提取出一位就改变n的值,显然是错误的!
a[i]=n%2;
n=n/2;换了位置的话输出就是少了一位。n=n/2;是改变了n的值的,开始还没有提取出一位就改变n的值,显然是错误的!
第2个回答 2020-04-29
因为是程序!每一步都很重要!你的这个是把十进制数转换为二进制程序!如果调换位置程序会无法运行!或者得不到预期结果!本回答被提问者采纳
第3个回答 2021-03-31