输入一个十进制的正整数,转换为8进制数并输出 5

#include<stdio.h>#include<stdlib.h>typedefintDataType;typedefstruct{DataTypedata[100]... #include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct
{
DataType data[100];
int top;
}SeqStack;
int InitSeqStack (SeqStack &st)
{
st.top=-1;
}
int Push (SeqStack &st, int x)
{
if(99==st.top)
return 0;
else
{
st.top++;
st.data[st.top]=x;
return 1;
}
}
int Pop(SeqStack &st, int &x)
{
if(st.top==-1)
return 0;
else
{
x=st.data[st.top];
st.top--;
return 1;
}
}
int SeqStackEmpty(SeqStack st)
{
if(st.top==-1)
return 1;
else
return 0;
}
int Convert(int n)
{
SeqStack st;
int i;
st.top=NULL;
while(n)
{
i=n%8;
Push(st,i);
n=n/8;
}
while(!SeqStackEmpty(st))
{
Pop(st,i);
printf("%d",i);
}
return 1;
}
int main()
{
SeqStack st;
InitSeqStack(st);
int n;
scanf("%d",&n);
Convert(n);
return 1;
}
哪里出问题了?
展开
 我来答
百度网友6a6aa8c
2013-10-25 · TA获得超过1483个赞
知道小有建树答主
回答量:707
采纳率:100%
帮助的人:732万
展开全部
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct
{
DataType data[100];
int top;
}SeqStack;
int InitSeqStack (SeqStack &st)
{
st.top=-1;
return 1;
}
int Push (SeqStack &st, int x)
{
if(99==st.top)
return 0;
else
{
st.top++;
st.data[st.top]=x;

return 1;
}
}
int Pop(SeqStack &st, int &x)
{

if(st.top==-1)
return 0;
else
{
        
x=st.data[st.top];
st.top--;
return 1;
}
}
int SeqStackEmpty(SeqStack st)
{
if(st.top==-1)
return 1;
else
return 0;
}
int Convert(int n)
{
SeqStack st;
int i;
st.top=-1;//这里又重新定义了st,初始化时应该为-1
while(n)
{
i=n%8;
Push(st,i);
n=n/8;
}
while(!SeqStackEmpty(st))
{
Pop(st,i);
printf("%d",i); 
}
return 1;
}
int main()
{
SeqStack st;
InitSeqStack(st);
int n;
scanf("%d",&n);
Convert(n);
return 1;
}

代码已改好,若有疑问请追问,满意请采纳

li410078815
2013-10-25 · 超过19用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:49.8万
展开全部
printf("%o", i); 八进制是%o %d是十进制啊 你是进制输入,输出要转换八进制就要%o
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
业美纸0L
2013-10-25
知道答主
回答量:18
采纳率:0%
帮助的人:9.5万
展开全部

int InitSeqStack (SeqStack &st)
{
st.top=-1;
}
没有初始化。改一下。
int InitSeqStack (SeqStack &st)
{
memset(st.data,0,100);
st.top=-1;
}

多余代码在函数int Convert(int n)
{

/*
SeqStack st;
int i;
st.top=NULL;

*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式