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


easylin0126@gmail.com (林榮翼)

學校 : 臺北市立成功高級中學
編號 : 89424
來源 : [123.195.45.59]
最後登入時間 :
2025-01-05 21:14:30

我的程式碼只要把"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
來源 : [114.36.253.126]
最後登入時間 :
2025-08-25 16:32:53

我的程式碼只要把"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,所以產生衝突。