[問題]pop跟queue的堆疊問題

看板C_and_CPP (C/C++)作者 (人生就是不停的戰鬥)時間16年前 (2010/06/11 00:18), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/3 (看更多)
例子: 輸入data:12345 輸入決定:3 輸出:32145 再輸入決定:4 輸出:41235 其實就是把資料放在一個stack中, 再將指定的數字前的資料(含指定數字)放入queue中,再放回stack中 自己寫了一個很醜的程式碼如下: 想法是直接在儲存資料的array上動手腳 #include<iostream.h> #include<string.h> void finalstate(char*,char*,char*); int main() { char data[20]; char temp[20]; char rule[20]; printf("輸入資料:"); scanf("%s",data); printf("指定資料:"); //輸入一連串的,例如第一次3,第二次是5,則輸入35 scanf("%s",rule); //再讓程式一次跑完顯示最後結果 finalstate(data,rule,temp); system("pause"); } void finalstate(char data[],char rule[],char temp[]) {int c=0; int length=strlen(data); for(int i=0,j=0,k=0 ; i<length-1 ; i++) { while(data[j]!=rule[i]) //似乎是這個while有問題 {temp[k++]=data[j++];} temp[k++]=data[j++]; k=0; while(j>=0) {data[j--]=temp[k++];} k=0;j=0 ; } printf("%s",data); } 我的執行結果會有問題,不是出現亂碼就是程式跑一下就將視窗關閉 目前debug覺得應該是第一個while有問題 請問該如何修改? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.51.16

06/11 00:27, , 1F
i 跑出陣列範圍了
06/11 00:27, 1F

06/11 00:37, , 2F
i不是到string 的長度而已嗎?應該沒有超過吧@_@
06/11 00:37, 2F

06/11 00:39, , 3F
data 跟 rule 不一樣長度喔! 所以要分開看
06/11 00:39, 3F

06/11 00:41, , 4F
應該說跑出字串範圍, 所以才會有亂碼 XD
06/11 00:41, 4F

06/11 00:42, , 5F
while 迴圈也沒有讓他比到 '\0' 即結束
06/11 00:42, 5F
文章代碼(AID): #1C4H1Idk (C_and_CPP)
文章代碼(AID): #1C4H1Idk (C_and_CPP)