#include<stdio.h>
int main () {
int s[4] = {0},a[4] = {0},b[4] = {0},n,p,q; //宣告變數
while(scanf("%d %d %d %d",&s[0],&s[1],&s[2],&s[3]) != EOF) { //先輸入目標答案
scanf("%d",&n); //輸入要猜幾次
for(int i = 0; i < n; i++) { //跑n次
p = 0; q = 0; //p為A的數量,q為B的數量,每次先歸零
for(int m = 0; m < 4; m++) { //先複製一份答案,待會會用到
b[m] = s[m];
}
for(int j = 0; j < 4; j++) { //輸入所猜的答案
scanf("%d",&a[j]);
}
for(int k = 0; k < 4; k++) { //先求A位置對數字也要對
if(b[k] == a[k]) { //只要符合就P++,符合的位置數字也要改掉,等等求B才不會重複
p++;
b[k] = -1;
a[k] = -2;
}
}
for(int k = 0; k < 4; k++) { //b[0]~b[4]
for(int l = 0; l < 4; l++) { //a[0]~a[4]
if(b[k] == a[l] && k != l) { //只要符合就q++,符合的位置數字也要改掉,才不會重複算到
q++;
b[k] = -1;
a[l] = -2;
}
}
}
printf("%dA%dB\n",p,q);
}
}
return 0;
}
關鍵就是先求A再求B,寫法應該有很多種
希望有幫助到各位