uva 340 Master-Mind Hints

这题就是判断,先判断正确的,再判断位置不对但是数字对的

这题开始提交都是 runtime error因为数组开的太小了,以后开大点。

 1 #include<iostream>
 2 using namespace std;
 3 int same,diff;
 4 void juge(int len,int a[],int b[]){
 5     int tempa[1000],tempb[1000];
 6     same=0,diff=0;
 7     for(int i=0;i<len;i++)
 8         tempa[i]=tempb[i]=1;
 9     for(int i=0;i<len;i++){
10         if(a[i]==b[i]){
11             same++;
12             tempa[i]=tempb[i]=0;
13         }
14     }
15     for(int i=0;i<len;i++){
16         if(tempa[i]){
17             for(int j=0;j<len;j++){
18                 if(tempb[j]&&a[i]==b[j]){
19                     diff++;
20                     tempa[i]=tempb[j]=0;
21                     break;
22                 }
23             }
24         }
25     }
26 }
27 int main(){
28     int n,times=1;
29     int a[1000],b[1000];
30     while(cin>>n){
31         if(n==0)
32             break;
33         for(int i=0;i<n;i++)
34             cin>>a[i];
35         cout<<"Game "<<times++<<":"<<endl;
36         for(int i=0;i<n;i++){
37             cin>>b[i];
38         }
39         while(b[0]!=0){
40             juge(n,a,b);
41             cout<<"    ("<<same<<","<<diff<<")"<<endl;
42             for(int i=0;i<n;i++)
43                 cin>>b[i];
44         }
45         
46     }
47 }

 

posted on 2013-12-23 20:43  云在心  阅读(283)  评论(2)    收藏  举报

导航