/**************************************************************************************
* Function : test
* Create Date : 2014/04/19
* Author : NTSK13
* Email : beijiwei@qq.com
* Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。
任何单位和个人不经本人允许不得用于商业用途
* Version : V0.1
***************************************************************************************
经典c程序(0023)
题目:给出一个十进制数,输出它的R进制数(1<R<=16)
**************************************************************************************/
#include<stdio.h>
#define MY_FUNC 1
#if MY_FUNC
void convert_10_to_r(char * string, int decimal,int r);
int main()
{
int i=0;
int m=0;
char target[20]="\0";
printf("The input a decimal number : \n");
fflush(stdout);//修复Eclipse printf()不能显示的小bug
scanf("%d",&m);
convert_10_to_r(target,m,8);
while(target[i]!='\0')
{
printf("%c",target[i]);
fflush(stdout);//修复Eclipse printf()不能显示的小bug
i++;
}
return 0;
}
void convert_10_to_r(char *string,int decimal,int r)
{
char bit[16]={"0123456789ABCDEF"};
int i=0,len=0;
int tmp_decimal=decimal;
len=1;
while(tmp_decimal/r !=0)//get length of R
{
len++;
tmp_decimal=tmp_decimal/r;
}
for(i=0;i<len;i++)
//get R
{
*(string+len-1-i)=bit[decimal%r];
decimal=decimal/r;
}
}
#else
int main()
{
int i=0,j=0,k=0;
printf("\n");
return 0;
}
#endif