如题,本题第二个点的数据,用下面这段代码在本地编译的结果,和洛谷IDE的结果不一致。请各位大佬看看是什么原因导致的,先谢过了。
#include<stdio.h>
#include<string.h>
int main(void)
{
char s[260]={'\0'};
scanf("%s", s);
int a=0, b=0, c=0;
while(s[0]!='\0'){
switch(s[0]){
case 'a':{
if(s[3]=='a'){
}
else if(s[3]=='b'){
a=b;
}
else if(s[3]=='c'){
a=c;
}
else{
a=s[3]-48;
}
break;
}
case 'b':{
if(s[3]=='a'){
b=a;
}
else if(s[3]=='b'){
}
else if(s[3]=='c'){
b=c;
}
else{
b=s[3]-48;
}
break;
}
case 'c':{
if(s[3]=='a'){
c=a;
}
else if(s[3]=='b'){
c=b;
}
else if(s[3]=='c'){
}
else{
c=s[3]-48;
}
break;
}
}
strcpy(s, &s[5]); //用第二段x:=x;的内容把第一段的的内容覆盖掉
}
printf("%d %d %d", a, b, c);
return 0;
}
第二个点的输入
c:=5;a:=b;b:=c;c:=a;a:=a;b:=b;c:=c;a:=c;c:=a;a:=b;b:=c;c:=a;a:=a;b:=b;c:=c;a:=c;b:=a;a:=c;c:=b;a:=2;c:=a;b:=9;
输出
2 9 2