@[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