VC6.0中如何用一唯数组和char来编写10进制转N进制?

来源:百度知道 编辑:UC知道 时间:2024/05/07 18:36:49
开头#include <stdio.h>
void main()
{
int i=0,base,num[32]={0};
long int n; char c;
printf("Input num:");
scanf("%ld",&n);
printf("Input base:");

写了一个多小时,终于写完了。。我这么辛苦,给我加分吧。。
#include <stdio.h>
int main(int argc,char*argv[])
{
/*************
比如要将十进制的10转换成二进制,首先求10%2=0,这是最末位的数字,然后再算10/2=5,5比进制数2大,然后再执行一遍5%2=1,1比2小,
所以1是末二位数字。再执行5/2=2.2等于进制数2,然后再执行一遍2%2=0,0比2小,所以0是末三位数字,再执行2/2=1. 1比2小,所以1为末
四位数字。计算完的数字式0101,将它逆序就是1010,即10的二进制码。下面就按照这个思路来转换进制。
*************/
int i=0;
int j=0;//i,j为循环变量
int temp=0;//在计算商和余数时的一个中间变量
int nNotZero=0;//记录数组nNum中最后一位非0值得下标,这样可以将它后面的0清除
int nBase=0;//进制数
int nNumber=0;//待转换的数
int nNum[32]={0};//定义一个接受余数和商的数组,32是你上面给的
char chNum[32]={'0'};//定义一个字符串数组,用来保存最后转换好的数字。
/****************
一下两个数组是一种镜像思想,两个数组每一位都一一对应,当某个变量等于nSource中第i个元素时,可以将它映射为chEnan数组中的第
i个元素,这个思想在后面用来显示比如16进制中的A,B,C....
***************/
int nSource[37]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36};//源数组

char chEnan[37]={'0