问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
从屏幕上输入一个数,显示出它的二 五 六 八 十三 十六 二十进制值分别是多少,20进制F以后就用GHIJK往后排。
从屏幕上输入一个数,显示出它的二 五 六 八 十三 十六 二十进制值分别是多少,20进制F以后就用GHIJK往后排。
#include<stdio.h>
void Change(int n,int a) //10 8
{
int ret = 0;//余数
if (n)
{
ret = n % a; //10%8=2 --> 1%8=1
n = n / a; //10/8=1 -->1/8=0
Change(n,a);
if (a > 10)
{
if (ret >= 10)
printf("%c", ret + 55);
else
printf("%d", ret);;
}
else
printf("%d", ret);
}
}
int main()
{
int n = 0;//输入数
int a = 0;//输入要转换的进制
printf("请输入:>\n");
//数字n转化成a进制
//scanf("%d%d", &n,&a);
//printf("%d的%d进制:>",n,a);
//Change(n, a);
scanf("%d", &n); //10 8
printf("%d的2进制:>",n);
Change(n, 2);
printf("\n");
printf("%d的5进制:>",n);
Change(n, 5);
printf("\n");
printf("%d的6进制:>",n);
Change(n, 6);
printf("\n");
printf("%d的8进制:>",n);
Change(n, 8);
printf("\n");
printf("%d的13进制:>",n);
Change(n, 13);
printf("\n");
printf("%d的16进制:>",n);
Change(n, 16);
printf("\n");
printf("%d的20进制:>",n);
Change(n, 20);
printf("\n");
return 0;
}