测试点对了,但是一直RE

P1597 语句解析

@[justbegan](/user/545507) 当 i = 0 时, n[i - 1] 会越界
by 信守天下 @ 2021-08-24 22:25:57


@[justbegan](/user/545507) 而且建议不要用 `gets`,有时候会出现很多玄学错误
by 信守天下 @ 2021-08-24 22:27:01


还是不对。。 ``` #include<bits/stdc++.h> char n[256]; using namespace std; int main(){ int x=255,y=255,z=255; gets(n); for(int i=0;i<strlen(n);i++){ if(n[i]==':'&&n[i+1]=='='){ if(n[i-1]=='a') x=i-1; if(n[i-1]=='b') y=i-1; if(n[i-1]=='c') z=i-1; if(n[i+2]=='a') n[i+2]=n[x]; if(n[i+2]=='b') n[i+2]=n[y]; if(n[i+2]=='c') n[i+2]=n[z]; n[i-1]=n[i+2]; } } if(n[x]>='9'&&n[x]<='0') n[x]=0; if(n[y]>='9'&&n[y]<='0') n[y]=0; if(n[z]>='9'&&n[z]<='0') n[z]=0; if(n[x]!=0) n[x]=n[x]-'0'; if(n[y]!=0) n[y]=n[y]-'0'; if(n[z]!=0) n[z]=n[z]-'0'; cout<<int(n[x])<<" "<<int(n[y])<<" "<<int(n[z]); return 0; } ```
by pl_cosmonaut @ 2021-08-24 22:38:13


@[信守天下](/user/392856) 只能用gets怎么办?
by pl_cosmonaut @ 2021-08-24 22:38:54


@[justbegan](/user/545507) 你这都没有改动啊
by 信守天下 @ 2021-08-25 12:25:39


@[justbegan](/user/545507) 该越界的地方还是越界
by 信守天下 @ 2021-08-25 12:26:02


@[justbegan](/user/545507) 为啥只能用 `gets` 啊,字符数组用 `scanf`,`string` 用 `cin` 啊
by 信守天下 @ 2021-08-25 12:26:58


过了过了
by pl_cosmonaut @ 2021-08-26 22:59:25


@[信守天下](/user/392856) 卡了三天的WA,被你一句话弄好了。有四个测试点,用gets过不了,scanf可以,玄学。。。
by Fantasy_ @ 2021-12-20 19:40:59


|