void main()
{
int idec,i,idr,p=0,ibase;
char strdr[20],t;//定义字符类型 strdr[20]用于存放字符串,至于下标是几无所谓,但要长一些,否则位数不够(特别是转为二进制数.
printf("输入要转换的十进制数:");
scanf("%d",&idec);
printf("输入要转换的进制基数:");
scanf("%d",&ibase);
while(idec!=0)
{
idr=idec%ibase;
if(idr>=10)
strdr[p++]=idr-10+65;//是strdr[p++] idr-10+65是为了表示数码大于10,要从字母'A'开始向后数(65是字符'A'的ASCII码).
else
strdr[p++]=idr+48;//idr+48是为了将数码以字符形式表示(48是字符'0'的ASCII码)
idec/=ibase;
}
for(i=0;i{
t=strdr[i];
strdr[i]=strdr[p-i-1];
strdr[p-i-1]=t;
}
strdr[p]='\0';是字符串结束标志,防止出错,不可省去
printf("转换成%d进制后的数为:%s",ibase,strdr);
printf("\n");
}