#37080: 求救!!!為甚麼不能用stack??用stack push變數進去結果出來該值對應的ascii是為甚麼???


vivian0119 (vivian)

學校 : 國立中山大學
編號 : 219710
來源 : [218.166.18.112]
最後登入時間 :
2025-10-09 11:02:16

以下是測試用的程式碼:

測試出來的結果就是,用stack push變數進去結果出來該值對應的ascii碼

#include<iostream>
#include<stack>
#include<cstring>
using namespace std;

int main(){
    string n;
    getline(cin, n);
    stack <int> stack1;
    int point;
    for(int j = n.length()-1; j>=0; j--){
        if(n[j]=='0') continue;
        else if(n[j] != '0'){
            point = j;
            break;
        }
    }
    int a = n[0];
    stack1.push(a);
    cout << stack1.top();

再來是我自己寫出來百思不得其解為甚麼跑不了的完整程式碼:

#include<iostream>
#include<stack>
#include<cstring>
using namespace std;

int main(){
    string n;
    getline(cin, n);
    stack <int> stack1;
    int point;
    for(int j = n.length()-1; j>=0; j--){
        if(n[j]=='0') continue;
        else if(n[j] != '0'){
            point = j;
            break;
        }
    }
    for(int i = 0; i<=point; i++){
        stack1.push(n[i]);
    }
    for(int i=0; i<=point; i++){
        cout << stack1.top();
        stack1.pop();
    }
}
#37081: Re: 求救!!!為甚麼不能用stack??用stack push變數進去結果出來該值對應的ascii是為甚麼???


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [140.114.123.98]
最後登入時間 :
2025-09-24 19:10:46

這支程式碼問題不少欸~

提示: 可以將stack儲存的資了改成char。

改完後記得試試看5050這筆測資,再把剩下那個問修掉。

#37082: Re: 求救!!!為甚麼不能用stack??用stack push變數進去結果出來該值對應的ascii是為甚麼???


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [140.114.123.98]
最後登入時間 :
2025-09-24 19:10:46

,再把剩下那個問修掉。


*問題

#37083: Re: 求救!!!為甚麼不能用stack??用stack push變數進去結果出來該值對應的ascii是為甚麼???


liaoweichen1024@gmail.com (M_SQRT)

學校 : 新北市立新莊高級中學
編號 : 195452
來源 : [140.114.123.98]
最後登入時間 :
2025-09-24 19:10:46

喔,抱歉,我被第一支程式搞混了,邏輯上沒什麼問題,stack儲存資料的型別改一下就行

#37084: Re: 求救!!!為甚麼不能用stack??用stack push變數進去結果出來該值對應的ascii是為甚麼???


vivian0119 (vivian)

學校 : 國立中山大學
編號 : 219710
來源 : [218.166.18.112]
最後登入時間 :
2025-10-09 11:02:16

喔,抱歉,我被第一支程式搞混了,邏輯上沒什麼問題,stack儲存資料的型別改一下就行


喔對耶!!!!太感謝你了!!改完char,已AC!