1. 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
#include <stdio.h>
char * decimal(int n,int m,char *str)
{
int i;
int len;
char temp;
char r;
len = 0;
while(n != 0)
{
if(m != 16)
{
r = n % m;
str[len] = r + '0';
n = n / m;
len++;
}
else
{
if(n % m > 9)
{
r = n % m;
str[len] = r - 10 + 'A';//r > 9
n = n / m;
len++;
}
else
{
r = n % m;
str[len] = r + '0';
n = n / m;
len++;
}
}
}
str[len] = '\0';
for(i = 0; i < len / 2; i++)
{
temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
printf("%s\n",str);
return *str;
}
int main()
{
int n;
int m;
char str[30];
printf("input a integer,you want to trans!\n");
scanf("%d",&n);
printf("input the decimal you want to trans:\n");
scanf("%d",&m);
decimal(n,m,str);
printf("%s\n",str);
return 0;
}
#include <stdio.h>
char * decimal(int n,int m,char *str)
{
int i;
int len;
char temp;
char r;
len = 0;
while(n != 0)
{
if(m != 16)
{
r = n % m;
str[len] = r + '0';
n = n / m;
len++;
}
else
{
if(n % m > 9)
{
r = n % m;
str[len] = r - 10 + 'A';//r > 9
n = n / m;
len++;
}
else
{
r = n % m;
str[len] = r + '0';
n = n / m;
len++;
}
}
}
str[len] = '\0';
for(i = 0; i < len / 2; i++)
{
temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
printf("%s\n",str);
return *str;
}
int main()
{
int n;
int m;
char str[30];
printf("input a integer,you want to trans!\n");
scanf("%d",&n);
printf("input the decimal you want to trans:\n");
scanf("%d",&m);
decimal(n,m,str);
printf("%s\n",str);
return 0;
}