c语言将十进制转为八进制字符串

2025-02-22 21:47:06
推荐回答(2个)
回答1:

#include
#include
void invert(char *str)
{
char t,*p=str+strlen(str)-1;
while(str {
t=*str;
*str=*p;
*p=t;
str++;
p--;
}
}
void d2o(int n,char str[])
{
char *p=str;
while(n)
{
*p++="01234567"[n%8];
n/=8;
}
*p='\0';
invert(str);
}
int main()
{
int num;
char str[100];
scanf("%d",&num);
d2o(num,str);
puts(str);
}

回答2:

#include
int main()
{
int a,x,y,i=0;
int num[20];
printf("输入十进制数:");
scanf("%d",&a);
while((x=a/8)!=0)
{
y=a%8;
num[i++]=y;
a=x;
}
num[i]=a;printf("八进制为:");
for(;i>=0;i--)
printf("%c",num[i]);
printf("\n");
}