程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 棧-有個問題,實在找不出來了,萬分感謝!(程序目的是十進制轉換為八進制)

棧-有個問題,實在找不出來了,萬分感謝!(程序目的是十進制轉換為八進制)

編輯:編程綜合問答
有個問題,實在找不出來了,萬分感謝!(程序目的是十進制轉換為八進制)

#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--;
}

最佳回答:


只在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;
}
a1163639207
a1163639207
u012505618
a1163639207
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved