C语言作业:C036-K进制数的转换

K进制数的转换。输入非负整数a将其转换为K进制数,2 <= K <= 32。

K进制数使用的符号是0~9, A, ...V来表示(字母是大写)

输入:一个十进制非负整数a和一个正整数K, 2<=K<=32。空格分隔。
输出:K进制表示的整数。

样例输入:

1234567 22

样例输出:

55KGF
#define _CRT_SECURE_NO_WARNINGS

#include
#include

char* IntToString(char* num, int n, int radix);

int main()
{
	int n;
	int k;
	(void)scanf("%d%d", &n, &k);
	char num[100];
	printf("%s", IntToString(num, n, k));
	return 0;
}

char* IntToString(char* num, int n, int radix)
{
	int i = 0;
	if (n == 0)
	{
		strcpy(num, "0");
	}
	else
	{
		while (n)
		{
			int m = n % radix;
			if (0 <= m && m <= 9)
			{
				num[i++] = m + '0';
			}
			else 
			{
				num[i++] = m - 10 + 'A';
			}
			n = n / radix; 
		}
		num[i] = 0;
		_strrev(num); 
	}
	return num;
}

你可能感兴趣的:(c语言,笔记)