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 }
浙公网安备 33010602011771号