#18989: 請問一下為什麼會CE


easylin0126@gmail.com (林榮翼)

學校 : 臺北市立成功高級中學
編號 : 89424
來源 : [140.114.207.162]
最後登入時間 :
2023-09-27 16:33:24
d432. 第四題:通關密語 (pwd) -- 92學年度北基區資訊學科能力競賽 | From: [39.8.126.54] | 發表日期 : 2019-08-22 20:09

我的程式碼只要把"index"換成其他名子就會AC,不然就會一直CE,想請教一下大神們原因是什麼!!

#include<stdio.h>
#include<string.h>
char str1[60],str2[60],ans[60];
int pos,len,index;
void print(int left,int right){
    if(left>right)
        return;
    pos--;
    for(int i=0;i<len;i++){
        if(str1[i]==str2[pos]){
            print(i+1,right);
            print(left,i-1);
            ans[--index]=str1[i];
            return;
        }
    }
}
int main(){
    while(~scanf(" %s %s",str1,str2)){
        index=len=pos=strlen(str1);
        print(0,pos-1);
        ans[len]='\0';
        puts(ans);
    }
}

 
#24303: Re:請問一下為什麼會CE


yes51851823@gmail.com (wseds)

學校 : 國立花蓮高級工業職業學校
編號 : 108813
來源 : [36.227.245.149]
最後登入時間 :
2024-04-16 01:11:16
d432. 第四題:通關密語 (pwd) -- 92學年度北基區資訊學科能力競賽 | From: [111.243.184.91] | 發表日期 : 2021-02-04 18:38

我的程式碼只要把"index"換成其他名子就會AC,不然就會一直CE,想請教一下大神們原因是什麼!!

#include
#include
char str1[60],str2[60],ans[60];
int pos,len,index;
void print(int left,int right){
    if(left>right)
        return;
    pos--;
    for(int i=0;i<len;i++){
        if(str1[i]==str2[pos]){
            print(i+1,right);
            print(left,i-1);
            ans[--index]=str1[i];
            return;
        }
    }
}
int main(){
    while(~scanf(" %s %s",str1,str2)){
        index=len=pos=strlen(str1);
        print(0,pos-1);
        ans[len]='\0';
        puts(ans);
    }
}


應該是本來就有叫做"index"的函數了,你又定義一個變數叫index,所以產生衝突。

 
ZeroJudge Forum