使用栈将十进制转化为十六进制,求解决,下边是问题

输入一个10进制整数,输出对应的16进制形式。

比如:

输入:10,输出:A;

输入:11,输出:B;

输入:26,输出:1A

要求:必须使用栈。可以使用C++的stack模板。也可以自己实现一个栈。

void func(int x, char str[])

{//将x转成十六进制,存入字符串str中

}

int main()

{

int x=111;

char str[100];

func(x,str);

puts(str);

}

要求:

1、把代码粘贴到答案对应的文本框中。

2、运行结果贴到代码后面。

3、注意代码缩进。

4、if、while、for等语句的语句块要用大括号括起来,即使只有一条语句。


stack<char> stk;
    int select = 0;
    std::cin>>select;
    int a = 0;
    int ch = '0';
    do
    {
       a = select%16;
       if(a >=0 && a<=9)
       {
           ch = a + '0';
       }
       else
       {
           ch = a - 10 + 'A';
       }
       stk.push(ch);
       select = select/16;
    } while (select >0);

    while (!stk.empty())
    {
        printf("%c",stk.top());
        stk.pop();
    }