#4787: 為什麼會RE


sam574 (liu)

學校 : 國立中興大學
編號 : 15117
來源 : [140.120.15.252]
最後登入時間 :
2014-02-11 16:18:00
a022. 迴文 | From: [122.118.5.15] | 發表日期 : 2011-01-24 09:53

因為已經不只第一次發生個問題了 

真的很想了解為什麼有時候在dev c跑程式ok

但是在這裡run卻RE

希望可以教教我  感恩

#include <iostream>
#include <cstring>

using namespace std;

int main(void)
{
    int a=0,j=0,count=0;
    char str1[999],str2[999];
   
    while(cin>>str1)
    {
          a=strlen(str1)-1;
         
          for(int i=a;i>=0;i--)
          {
                  str2[i]=str1[j];
                  j++;
          }
          j=0;
         
          for(int x=0;x<=a;x++)
          {
                  if(str1[x]==str2[x])
                  count++;
                  else
                  count--;
          }
          if(count==a+1)
          cout<<"yes"<<endl;
          else
          cout<<"no"<<endl;
         
          for(int k=0;k<=999;k++)
          {
                  str1[k]=0;
                  str2[k]=0;
          }
          count=0;
    }
    
 
    return EXIT_SUCCESS;
}

 

 

 
#4788: Re:為什麼會RE


popular10347 (ICPC// 哪時能唸到高等演算法T^T)

學校 : 元智大學
編號 : 11351
來源 : [1.169.118.99]
最後登入時間 :
2012-10-29 00:22:54
a022. 迴文 | From: [125.231.166.208] | 發表日期 : 2011-01-24 15:20

因為已經不只第一次發生個問題了 

真的很想了解為什麼有時候在dev c跑程式ok

但是在這裡run卻RE

希望可以教教我  感恩

#include
#include

using namespace std;

int main(void)
{
    int a=0,j=0,count=0;
    char str1[999],str2[999];
   
    while(cin>>str1)
    {
          a=strlen(str1)-1;
         
          for(int i=a;i>=0;i--)
          {
                  str2[i]=str1[j];
                  j++;
          }
          j=0;
         
          for(int x=0;x<=a;x++)
          {
                  if(str1[x]==str2[x])
                  count++;
                  else
                  count--;
          }
          if(count==a+1)
          cout<<"yes"<          else
          cout<<"no"<         
          for(int k=0;k<=999;k++)
          {
                  str1[k]=0;
                  str2[k]=0;
          }
          count=0;
    }
    
 
    return EXIT_SUCCESS;
}

 

 

你的陣列大小太小了

題目不是說<1000

所以必須要開到1000 (多一格是要存'\0')

 
#4792: Re:為什麼會RE


sam574 (liu)

學校 : 國立中興大學
編號 : 15117
來源 : [140.120.15.252]
最後登入時間 :
2014-02-11 16:18:00
a022. 迴文 | From: [122.118.1.101] | 發表日期 : 2011-01-24 15:48

因為已經不只第一次發生個問題了 

真的很想了解為什麼有時候在dev c跑程式ok

但是在這裡run卻RE

希望可以教教我  感恩

#include
#include

using namespace std;

int main(void)
{
    int a=0,j=0,count=0;
    char str1[999],str2[999];
   
    while(cin>>str1)
    {
          a=strlen(str1)-1;
         
          for(int i=a;i>=0;i--)
          {
                  str2[i]=str1[j];
                  j++;
          }
          j=0;
         
          for(int x=0;x<=a;x++)
          {
                  if(str1[x]==str2[x])
                  count++;
                  else
                  count--;
          }
          if(count==a+1)
          cout<<"yes"<          else
          cout<<"no"<         
          for(int k=0;k<=999;k++)
          {
                  str1[k]=0;
                  str2[k]=0;
          }
          count=0;
    }
    
 
    return EXIT_SUCCESS;
}

 

 

你的陣列大小太小了

題目不是說<1000

所以必須要開到1000 (多一格是要存'\0')

感謝 原來是這個原因 以後會再多加注意 謝謝

 
ZeroJudge Forum