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

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条回答 默认 最新

  • 正在学C++ 2021-04-23 08:22
    关注
    int dec2hex(int n)
    {
        char SL[200] = { '\0' };
        int yushu = 0, i = 0;
        do
        {
            yushu = n % 16;                         //先%16  再/16
            n = 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;     //截至到15就行啦
                    default:
                        break;
                }
            }
            else
            {
                SL[i] = yushu+48;           //需要加48 因为你的数组是char类型,'1'=(char)(1+48)
            }
            i++;
        }    while (n > 0);
    
        for (i = i - 1; i >= 0; i--)        // i>=0 你的SL[0]也是有数据的
        {
            printf("%c", SL[i]);
        }
    
    
        printf("\n");
        return 0;
    }

    修改三处地方。

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么