[考題] 程式語言/98身心障礙

看板Examination作者 (QQ)時間12年前 (2013/03/12 14:53), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/2 (看更多)
五、桌上有N本書成一疊,當閱讀其中某本書的時候,會逐本將壓在該本書上的書照順 序由上而下的移開,並且按照移開的順序先將它們放在旁邊,然後取走想要看的書; 當閱讀完畢以後,會將剛才移開的書逐本逆向放回,並且將看完的書本放在最上面, 例如桌上有五本書: 書本 1 書本 2 書本 3 書本 4 書本 5 經過閱讀"書本 3"後放回之最終書本狀態變成 書本 3 書本 2 書本 1 書本 4 書本 5 請撰寫一段程式執行以上工作,不限程式語言:(25 分) 輸入:一個初始書本序列和一個閱讀書之序列 輸出:最終的書本狀態 目前的程式長這樣,不過printBook函數不能運作 是什麼原因~?? #include<iostream> #define N 50 using namespace std; struct Node{ int number; char name[10]; }; struct Stack{ Node *stackpointer[N]; int sp; }; struct Queue{ Node *queuepointer[N]; int rear; int front; }; int isempty(Stack *); void push(Stack *,Node *); void printBook(Stack *); int main(){ Stack s; Queue q; Node *ptr=new Node; strcpy(ptr->name,"書本5"); ptr->number=5; push(&s,ptr); ptr=new Node; strcpy(ptr->name,"書本4"); ptr->number=4; push(&s,ptr); ptr=new Node; strcpy(ptr->name,"書本3"); ptr->number=3; push(&s,ptr); ptr=new Node; strcpy(ptr->name,"書本2"); ptr->number=2; push(&s,ptr); ptr=new Node; strcpy(ptr->name,"書本1"); ptr->number=1; push(&s,ptr); printBook(&s); system("pause"); return 0; } void push(Stack *p,Node *x){ p->sp++; p->stackpointer[p->sp]=x; } Node* pop(Stack *p){ if(isempty(p)) cout<<"堆疊已空"<<endl; else return p->stackpointer[p->sp--]; } int isempty(Stack *p){ if(p->sp==-1) return 1; else return 0; } void printBook(Stack *p){ // for(int i=0;i<=p->sp;i++){ cout<<p->stackpointer[0]->number<<endl; // } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.246.201.24

03/12 14:57, , 1F
是自己腦殘,沒有把stack初始化
03/12 14:57, 1F

03/12 15:00, , 2F
自問自答? 參考程式碼如原po所寫的嗎@@?
03/12 15:00, 2F

03/12 15:02, , 3F
剛剛突然想到,等寫完我再分享程式碼
03/12 15:02, 3F
文章代碼(AID): #1HFj43xh (Examination)
文章代碼(AID): #1HFj43xh (Examination)