#4471: 請各位幫忙解答! a022


plutokiss (阿威)

學校 : 臺北市私立薇閣高級中學
編號 : 14158
來源 : [211.20.61.87]
最後登入時間 :
2010-12-10 17:58:18
a022. 迴文 | From: [125.228.174.73] | 發表日期 : 2010-10-31 17:36

先打出我的寫法:

#include<iostream>

#include<string>

using namespace std; 

int main() {

     string a;

     int count=0;

     while(cin >> a){

       if (a.size()%2==1)

        {

         for (int k=0 ; k<=(a.size()-3)/2 ; k++)

          {

           if (a[k]==a[a.size()-k-1])

            count++;

          }

          if (count==(a.size()-1)/2)

           cout<<"yes";

          else

           cout<<"no";

        }

       if (a.size()%2==0)

        {

          for (int k=0 ; k<=a.size()/2-1 ; k++)

          {

           if (a[k]==a[a.size()-k-1])

            count++;

          }

          if (count==(a.size())/2)

           cout<<"yes";

          else

           cout<<"no";                 

        }

     }

     return 0;

}

 

Dev上可以使用,但丟上來卻是RE

訊息:

 生錯誤 (SIGSEGV)(11)!! 

Segmentation fault, an address reference boundary error.(記憶體區段錯誤) 

可能原因為: 

* 通常為使用超過陣列範圍

* 指標指向不正確位址!

* 陣列初始化不正確!

* 嘗試在執行時期定義陣列長度!

sh: line 1: 15257 程式記憶體區段錯誤   /tmp/code_607591.exe <a022.in >/tmp/code_607591.out

 

請幫忙解答~ 感謝您 

 
ZeroJudge Forum