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;
#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;
}