数据结构二进制转八进制
本帖最后由 jiachengliasd 于 2016-4-9 23:21 编辑在for循环里有一段if,如果去了什么问题也没有,但是if里面是解题的关键,调试运行就在第一个while的push的*(s->top)=e;这一句卡死了。。实在想不出哪里错了。。求助
int main()
{
sqStack s,a;
ElemType c;
int num=0,i,len;
InitStack(&s);
InitStack(&a);
printf("请输入二进制数\n");
scanf("%c",&c);
while(c != '#')
{
push(&s,c);
scanf("%c",&c);
}
getchar();
len=StackLength(s);
for(i=0;i<len;i++)
{
pop(&s,&c);
num=num+(c-48)*pow(2,i);
if( (i+1)%3 == 0 )
{
push(&a,num+48);
num=0;
}
}
while(a.base != a.top)
{
pop(&a,&c);
printf("%d",c);
}
return 0;
} pop(&s,&c);
num=num+(c-48)*pow(2,i);
if( (i+1)%3 == 0 )
{
push(&a,num+48);
num=0;
}
你这块二进制转八进制的代码,没太明白。。
二进制转八进制不是三位一转么?
比如 110010111--> 最后三位是111则为7, 中间三位010为2,前面110为6,所以最后八进制数为627 还有下次发代码用代码格式发,在编辑栏有个<>按钮,点那个,然后把代码复制进去就行,要不然不好说第几行有问题 {:10_254:} 感谢分享
ok
页:
[1]