题可知,16进制的10,11,12...用abc...表示,所以我们应该定义个字符数组来表示abcd对应的10,11,12,13等等。
代码示例:
#include <stdio.h>
int main() {
int M,N,s[100],i=0;
char c[]= {"0123456789abcdef"};
scanf("%d,%d",&M,&N);
if(N>=2&&N<=16) {
while(M!=0) {
s[i]=M%N;
M=M/N;
i++;
}
i=i-1;
for(; i>=0; i--) {
printf("%c",c[s[i]]);
}
}else{
printf("输入有误。N应该大于等于2小于等于16");
}
return 0;
}
输出结果:
195,16
c3
--------------------------------