1215787625 发表于 2023-12-6 21:01:26

为什么这个代码过不了noi-1.7-11潜伏者

#include<stdio.h>
#include<string.h>
int main(){//6590
        char ch,ch1,ch2;
    int zu;
    int a;
        gets(ch);
    gets(ch1);
    gets(ch2);
    int le,n,m;
        le = strlen(ch);
        if(le<=25){
                printf("Failed");
                return 0;
        }
        for(n=0;n<le;n++){
                a = ch-65;
                zu++;
        }
        for(n=0;n<26;n++){
                if(zu==0){
                        printf("%d",n);
                        printf("Failed");
                        return 0;
                }
        }
    for(n=0;n<le;n++){
            for(m=n+1;m<le;m++){
                    if(ch==ch&&ch1!=ch1){
                                printf("Failed");
                            return 0;
                        }
                        if(ch1==ch1&&ch!=ch){
                                printf("Failed");
                          return 0;
                        }
                }
        }
        for(n=0;n<le;n++){
                for(m=0;m<le;m++){
                        if(ch2==ch){
                                ch2=ch1;
                                break;
                        }
                }
        }
        printf("%s",ch2);
        return 0;
}

FishC_GPT 发表于 2023-12-6 21:02:52

你好!首先,你的代码有一些问题。首先,你应该使用C++中的iostream库而不是stdio.h和cstring库。其次,你需要声明ch、ch1和ch2为字符数组而不是单个字符变量。另外,你应该使用cin来获取输入而不是gets函数。最后,你在计算字符串长度时没有考虑到换行符的长度,所以代码是错误的。

下面是修复了这些问题的代码:

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

int main() {
    char ch, ch1, ch2;
    int a;
    cin.get(ch, 100);
    cin.get();
    cin.get(ch1, 100);
    cin.get();
    cin.get(ch2, 100);

    int le = strlen(ch);
    int n = strlen(ch1);
    int m = strlen(ch2);

    // 其他操作
   
    return 0;
}

请确保将其他操作填入代码中的"其他操作"部分。希望这对你有帮助!如果还有其他问题,请随时提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 为什么这个代码过不了noi-1.7-11潜伏者