#include<stdio.h>
int main()
{
int a,b,c,d[100],i=0,j=0,k;
char e[100],f;
scanf("%d",&a);
b=a;
c=a;
//转八进制
while(b!=0)
{
d[i++]=b%8;
b=b/8;
}
for(k=i-1;k>=0;k--)
printf("%d",d[k]);
printf("\n");
//转十六进制
while(c!=0)
{
if(c%16>=9) f='A'+c%16-10;
else f='0'+c%16;
e[j++]=f;
c=c/16;
}
for(k=j-1;k>=0;k--)
printf("%c",e[k]);
return 0;
}
调用函数实现
#include<stdio.h>
void dec2n(int x,int n)
{
int a[33],i;
for(i=0;x;x/=n) a[i++]=x%n;
for(i--;i>=0;i--)
if(a[i]<10) printf("%d",a[i]);
else printf("%c",a[i]+55);
printf("\n");
}
int main()
{
int x;
scanf("%d",&x);
//转八进制
dec2n(x,8);
//转十六进制
dec2n(x,16);
return 0;
}