【问题描述】
编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中. 编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为'-'。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是'0'和'1';当b=16时,输出字符串中可能含有字符为'0'-'9','a'-'f'(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。
【输入形式】
控制台输入整数n和b,其中n可以为负数。n和b以空格分隔.
【输出形式】
控制台输出转化后的字符串s.
【样例输入】
5 2
【样例输出】
101
#include<stdio.h>
int main()
{
int n = 0;
int b = 0;
int i = 1;
int j = 0;
int x[100];
int m;
scanf("%d%d", &n, &b);//n是十进制的数,b是要转化的进制
m = n;
if (n < 0)
n = -n;//令n为正数
for (i = 1; i <= 100; i++)
{
x[j] = n % b;
n /= b;
j++;
if (n / b == 0&&n%b==0)
break;
}
for (j; j>=1; j--)
{
if (m < 0)
{
printf("-");
m = -m;
}
if (x[j - 1] <= 9)
printf("%d", x[j - 1]);
else
printf("%c", x[j - 1] + 87);
}
return 0;
}