c语言,将十进制正整数m转换成k(2

问题描述:

c语言,将十进制正整数m转换成k(2
1个回答 分类:综合 2014-10-11

问题解答:

我来补答
for(i=0;m;i++)
aa[i]=m%k;
如果m=3 k=4
当i=0时
这时aa[0]=3;
m=3/4=0;
结束,但是最后还有i++;i=1;
所以最后的i++执行是多余的,所以要减1
输出aa[i-1]开始
void fun(int m,int k)
int aa[20],i;
for(i=0;m;i++)
{aa[i]=m%k;
m/=k;} //答案少了大括号
for(;i;i--)
printf("%d",aa[i-1]);
再问: for(;i;i--) 这一句应该是逆序输出吧,那应该是从aa[i+1]开始往前推到aa[0]结束咯?那多出来的一位数应该在最前面咯?
再答: 是逆序输出,但是i 前面多算了1,要把它减下来,所以从aa[i-1] ,我上面解释的很详细啊
 
 
展开全文阅读
剩余:2000