题目链接:https://vjudge.net/problem/UVA-340#author=0 题解:初始化+标志变量 输出的是:数对并且位置也对,数对位置不对(这个地方这个数不一定只出现一次,多次出现也可以) 大致思路就是先遍历每个位置,如果数对,标志用过, 然后剩下的事位置不对的,再双重循环找相同数注意改变标志变量 代码: #include #include #include #define maxn 1100 using namespace std; int real[maxn]; int guess[maxn]; bool fl[maxn]; int main() { int n,cou=0; while(cin>>n&&n) { cou++; for(int i=1; i<=n; i++) cin>>real[i]; cout<<“Game “<<cou<<”:”<<endl; for(; ; ) { memset(fl,false,sizeof(fl)); int co=0; int wr=0; for(int i=1; i<=n; i++) cin>>guess[i]; if(guess[n]==0) break; for(int i=1; i<=n; i++) { if(guess[i]==real[i]) { guess[i]=0; fl[i]=true; co++; } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(guess[i]==real[j]&&fl[j]==false) { wr++; fl[j]=true; guess[i]=0; } } } cout<<" ("<<co<<","<<wr<<")"<<endl; } } return 0; }