清闻轻语 2015-10-26 13:07 采纳率: 0%
浏览 1558
已采纳

有个问题,实在找不出来了,万分感谢!(程序目的是十进制转换为八进制)

#include
#include
typedef struct sStack
{int data[100];
int top;
} seqstack;

void initialstack(seqstack &S)
{S.top=-1;
}

bool stackempty(seqstack &S)
{
}

bool pushstack(seqstack &S,int x)
{if(stackfull(S))
return false;
else {S.top++;
S.data[S.top]=x;
return true;
}
}

bool popstack(seqstack &S,int &x)
{if(stackempty(S))
return false;
else{x=data.[S.top];
S.top--;
return true;
}
}

void main()
{int n;
int x;
seqstack S;
initialstack(&S);
printf("请输入非负十进制数:");
scanf("%d",&n);
if(n==0) printf("对应八进制数为:/n0");
while(n!=0)
{if(S.top==100) printf("/n栈满结束");
else {x=n%2;
pushstack(S,x);
n=n/2;
}
}
if(S.top==-1) printf("/n栈空结束");
else while(S.top!=-1){popstack(seqstack S,x);
printf("%d",x);
S.top--;
}

  • 写回答

3条回答 默认 最新

  • cxlovu 2015-10-26 13:29
    关注

    只在lz的基础上改,不得不说,lz你的思路很混乱啊。

    #include<stdio.h>
    #include<stdlib.h>
    typedef struct sStack
    {
        int data[100];
        int top;
    } seqstack;
    void initialstack(seqstack &S)
    {
        S.top=-1;
    }
    bool stackempty(seqstack &S)
    {
        return S.top == -1? true:false;
    }
    bool stackfull(seqstack &S)
    {
        return S.top == 100? true:false;
    }
    bool pushstack(seqstack &S,int x)
    {
        if (stackfull(S))
            return false;
        else
        {
            S.top++;
            S.data[S.top]=x;
            return true;
        }
    }
    bool popstack(seqstack &S,int &x)
    {
        if (stackempty(S))
            return false;
        else
        {
            x=S.data[S.top];
            S.top--;
            return true;
        }
    }
    int main()
    {
        int n;
        int x;
        seqstack S;
        initialstack(S);
        printf("请输入非负十进制数:");
        scanf("%d",&n);
        if (n==0) printf("对应八进制数为:/n0");
        while (n!=0)
        {
            if (S.top==100) printf("/n栈满结束");
            else
            {
                x=n%8;
                pushstack(S,x);
                n=n/8;
            }
        }
        if (S.top==-1) printf("/n栈空结束");
        else 
        {
            while (S.top!=-1){
                popstack(S,x);
                printf("%d",x);
        //          S.top--;
            }
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度