c语言 任意整数进制转换n 输出

#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
char* fn(int n,int count )
{
    char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char result[32]={'0'};
char rst[32]={'0'};
int  remainder;
int i=0,j=0;
while(count>0)
{

        remainder=count%n;
rst[i]=hex[remainder];
i++;
count=count/n;
}
for(j=0;j<i;j++)
{
result[j]=rst[i-j-1];
}
return result;


}
int main(int argc, char* argv[])
{
int cnt,cn;
char a[32];
printf("输入的整数或者进制数为零表示退出程序\n");
while(1)
{
printf("请输入一个32位范围内整数");
   scanf("%d",&cnt); 
   printf("请输16以内的转换进制");
   scanf("%d",&cn);  
   if(cnt==0||cn==0)
  break;
   else
{
           strcpy(a,fn(cn,cnt));
      printf("您输入的整数%d 转换为%d进制的结果为%s\n\n",cnt,cn,a);
}       
}
system("pause");
return 0;

}

c语言 任意整数进制转换n 输出