十进制转为十六进制,可以帮我看看问题出在哪里吗?

我用123试了一下,发现我用的数组b[j]中b[0]=b正确输出了,但是b[1]=7,出现了问题,7并没有输出,小黑框的前三行不用管,后三行中前两行是我试着用来找错误的,是j的值,第三行的b是b[0]

img


#include
using namespace std;
int main()
{
int n;
cin>>n;
int x=n;
//十进制
cout<
//八进制
int m,a[1000],i=0;
do
{
m=n/8;
a[i]=n%8;
n=m;
i++;
} while(m>0);
i--;
for(;i>=0;i--)
{
cout<

}
cout<//十六进制
int p,q,j=0;
char b[1000];
do
{
    p=x/16;
    q=x%16;
    if(q<10) 
    {
        b[j]=q;
        j++;
        x=p;
    }
    else
    {
        b[j]='a'+q-10;
        j++;
        x=p;
    }
}while(p>0);
j--;
for(;j>=0;j--)
{
    cout<return 0;

}

十六进制里 b[j]=q; 改为 b[j] = q + '0';

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^