求助:十进制转其他进制的问题
#include <iostream>
using namespace std;
void binary(int);
void octal(int);
void hex(int);
int main()
{
int n;
cout << "Enter n(n >= 1 && n <= 256): ";
cin >> n;
cout << n << " 用二进制表示为: ";
binary(n);
cout << endl;
cout << n << " 用八进制表示为: " << "0";
octal(n);
cout << endl;
cout << n << " 用十六进制表示为: " << "0x";
hex(n);
cout << endl;
return 0;
}
void binary(int x)
{
int a[8];
int i;
for(i = 7; i >= 0; --i)
{
a[i] = x & 1;
x = x>>1;
}
for(i = 0; i < 8; ++i)
cout << a[i];
}
void octal(int y)
{
char b[3];
int j;
for(j = 2; j >= 0; ++j)
{
b[j] = y % 8;
y /= 8;
}
for(j = 0; j < 3; ++j)
cout << b[j];
}
void hex(int z)
{
int c[3];
int k;
for(k = 2; k >= 0; --k)
{
c[k] = z % 16;
z /= 16;
}
for(k = 0; k < 3; ++k)
{
if(c[k] >= 10)
{
switch(c[k])
{
case 10:
cout << 'A';
break;
case 11:
cout << 'B';
break;
case 12:
cout << 'C';
break;
case 13:
cout << 'D';
break;
case 14:
cout << 'E';
break;
case 15:
cout << 'F';
break;
default:
break;
}
}
else
cout << c[k];
}
}
上面是我编的代码,可是只打印出二进制之后就结束了,不知为何,求好心人帮忙呀

