原始思路:
手写进制转换,除以n,取余,得商,再取余,直到商为0.
利用int型数组,倒序存储所得的每个余数
注意:循环求余时 i 多加了一次,i-1,一直取到 j 为0
/*
利用数组
将十进制转换为任意进制
*/
#include <stdio.h>
# define M 100
void change(int srcnum,int R)
{
int i=0,j=0; // 循环变量
int a[M] = {0}; // 全部元素初始化为0
while(srcnum)
{
a[i] = srcnum % R;
srcnum /= R;
i++;
}
for(j=i-1; j>=0; j--) // 注意:i多加了一次,i-1,一直取到j为0
{
printf("%d",a[j]);
}
printf("\n");
}
int main(void)
{
int source = 0; // 原数字
int R = 0; // 要转为R进制
char confirm; // 控制是否继续
do
{
printf("请输入原数值: \n");
scanf("%d", &source);
printf("请输入转换的进制数: \n");
scanf("%d", &R);
while(getchar() != '\n');
change(source,R);
printf("想继续输入吗?Y/N: \n");
scanf("%c", &confirm);
}
while('Y' == confirm || 'y' == confirm);
return 0;
}
do{
}
while();
增强人机交互,计算结果后摁'Y' || 'y' 一直玩