m0_52767130
2021-04-23 02:04
采纳率: 100%
浏览 39

10进制转16进制,为什么无输出?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int dec2hex(int n);
	int n = 0;
	printf("输入一个十进制整数:");
	scanf("%d",&n);
	printf("对应的十六进制数:");
	dec2hex(n);
	system("pause");
	return 0;
}

int dec2hex(int n)
{
	char SL[200] = { '\0' };
	int yushu = 0, i = 0;
	do
	{
		n = n / 16;
		yushu = n % 16;
		if (yushu > 9)
		{
			switch (yushu)
			{
			case 10:SL[i] = 'A'; break;
			case 11:SL[i] = 'B'; break;
			case 12:SL[i] = 'C'; break;
			case 13:SL[i] = 'D'; break;
			case 14:SL[i] = 'E'; break;
			case 15:SL[i] = 'F'; break;
			case 16:SL[i] = 'G'; break;
			default:
				break;
			}
		}
		else 
		{
			SL[i] = yushu;
		}
		i++;
	}
	while (n > 0);
	
	for (i = i - 1; i != 0; i--)
	{
		printf("%c", SL[i]);
	}
	printf("\n");
	return 0;
}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

相关推荐 更多相似问题