#25879: C language 簡易寫法


22207807 (會打Code的貓)

學校 : 逢甲大學
編號 : 156777
來源 : [140.134.241.201]
最後登入時間 :
2023-03-14 12:33:09
a291. nAnB problem | From: [42.72.86.8] | 發表日期 : 2021-06-30 15:35

#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,寫法應該有很多種

希望有幫助到各位

 
ZeroJudge Forum