划拳是古老中國酒文化的一個有趣的組成部分。酒桌上兩人划拳的方法爲:每人口中喊出一個數字,同時用手比劃出一個數字。若是誰比劃出的數字正好等於兩人喊出的數字之和,誰就贏了,輸家罰一杯酒。兩人同贏或兩人同輸則繼續下一輪,直到惟一的贏家出現。 下面給出甲、乙兩人的划拳記錄,請你統計他們最後分別喝了多少杯酒。 輸入格式: 輸入第一行先給出一個正整數 N(≤100),隨後 N 行,每行給出一輪划拳的記錄,格式爲: 甲喊 甲劃 乙喊 乙劃 其中喊是喊出的數字,劃是劃出的數字,均爲不超過 100 的正整數(兩隻手一塊兒劃)。 輸出格式: 在一行中前後輸出甲、乙兩人喝酒的杯數,其間以一個空格分隔。 輸入樣例: 5 8 10 9 12 5 10 5 10 3 8 5 12 12 18 1 13 4 16 12 15 輸出樣例: 1 2
// PAT_1046_Fit # include <stdio.h> # include <stdlib.h> typedef struct { int A1; // A 喊 int A2; // A 劃 int B1; int B2; }Node, *NODE; int main(void) { int N; int i; int Sum; NODE node; scanf("%d",&N); int Win_A=0, Win_B=0; // 分別記錄 A B 贏的次數 // 動態分配內存 node = (NODE)malloc(sizeof(Node)*N); // 依次輸入信息 for (i=0; i<N; i++) { scanf("%d",&node[i].A1); scanf("%d",&node[i].A2); scanf("%d",&node[i].B1); scanf("%d",&node[i].B2); Sum = node[i].A1 + node[i].B1; // 判斷AB的勝負狀況 if (Sum==node[i].A2 && Sum==node[i].B2) continue; if (Sum==node[i].A2) Win_A++; if (Sum==node[i].B2) Win_B++; } // 輸出結果 printf("%d %d",Win_B, Win_A); return 0; }
RRnode