运行后发现,十六进制那里只输出了一个换行,但是我已经把余数存在b[j]中了,可以告诉我一下错在哪里,怎么改吗?
#include
using namespace std;
int main()
{
int n;
cin>>n;
//十进制
cout<<n<<endl;
//八进制
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<<a[i];
}
cout<<endl;
//十六进制
int p,q,j=0;
char b[1000];
do
{
p=n/16;
q=n%16;
if(q<10)
{
b[j]=q;
j++;
n=p;
}
else
{
b[j]='a'+p-10;
j++;
n=p;
}
}while(p>0);
j--;
for(;j>=0;j--)
{
cout<<j<<b[j]<<endl;
}
return 0;
}