看看有谁现在还能读懂这个程序!(任意进制化成十进制)
[code=C/C++][/code]?#include<stdio.h>
?void fun(int n,int k);
?int main()
?{
? int n,k;
? scanf("%d%d",&n,&k);
? printf("(%d)10=(",n);
? fun(n,k);
? printf(")%d",k);
? putchar('\n');
? return 0;
?}
?
?void fun(int n,int k)
?{
? char c;
? if(n/k)
? fun(n/k,k);
? c=(n%k)["0123456789ABCDEF"];
? putchar(c);
[解决办法]
说错了。
应该是 10进制转换为k进制,k=[2,16].
[解决办法]
c=(n%k)["0123456789ABCDEF"];
lz估计是不知道这行是什么。
这个相当于一个数组"0123456789ABCDEF",然后取n%k处的元素
[解决办法]
只有懂进制转换原理,就很容易看懂,楼主你的fun()函数还少一句输出语句吧
#include<stdio.h>void fun(int n,int k);int main(){ int n,k; scanf("%d%d",&n,&k); printf("(%d)10=(",n); fun(n,k); printf(")%d",k); putchar('\n'); return 0;}void fun(int n,int k){ char c; if(n/k) fun(n/k,k); c=(n%k); printf("%d", c); //输出 }
[解决办法]