《高级语言程序设计实践》期末考试复现——9 丢手绢
1 #include<string.h> 2 #include<iostream> 3 using namespace std; 4 int n,m,k,i,j,i1; 5 char s1[20],s2[20],s[25][20]; 6 int main() 7 { 8 cin>>n; 9 for(i=0;i<n;i++) cin>>s[i]; 10 cin>>m; 11 for(j=0;j<m;j++)//移动 12 { 13 cin>>s1>>k; 14 for(i=0;i<n;i++) 15 if(strcmp(s[i],s1)==0) break; 16 for(i1=i;i1<i+k;i1++) 17 strcpy(s[i1%n],s[(i1+1)%n]); 18 strcpy(s[i1%n],s1); 19 } 20 for(;;)//交换 21 { 22 cin>>s1>>s2; 23 if(strcmp(s1,s2)==0) break; 24 for(i=0;i<n;i++) 25 if(strcmp(s[i],s1)==0) break; 26 for(j=0;j<n;j++) 27 if(strcmp(s[j],s2)==0) break; 28 strcpy(s[i],s2); 29 strcpy(s[j],s1); 30 } 31 cin>>s1; 32 for(i=0;i<n;i++) 33 if(strcmp(s[i],s1)==0) break; 34 for(j=i;j<i+n;j++) 35 if(strcmp(s[j%n],s2)) 36 cout<<s[j%n]<<endl;//输出 37 }