(在线等)帮忙看看,这个十进制转化八进制的程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/06/24 01:44:40
#include<stdio.h>
void convert(char *a,int n)
{ int i;
if((i=n/8)!=0)
convert (a+1,i);
*a=n%8+'0';
}

main()
{ char str[10];
int number;
scanf("%d",&number);
convert (str,number);
puts(str);
}
这个程序哪里错了,我输入100,为什么输出441(不是应该输出144吗),希望帮忙讲解一下。

//你放倒了,应该把得到的结果倒着输出。
#include<stdio.h>
void convert(char *a,int n)
{ int i;
if((i=n/8)!=0)
convert (a-1,i);
*a=n%8+'0';
}

main()
{ char str[10]={0};
int number,i;
scanf("%d",&number);
convert (&str[8],number);
for(i=0;i<8;++i)
{
if(0!=str[i]) break;
}
puts(&str[i]);
}