看看有哪位高手现在还能读懂这个程序!(任意进制化成十进制)
看看有谁现在还能读懂这个程序!(任意进制化成十进制)
[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()函数还少一句输出语句吧
[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()函数还少一句输出语句吧
- 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); printf("%d", c); //输出 }
------解决方案--------------------