PAT-B 1018. 錘子剪刀布 (20)

傳送門

https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344

題目

大家應(yīng)該都會玩“錘子剪刀布”的游戲:兩人同時給出手勢,勝負(fù)規(guī)則如圖所示:


現(xiàn)給出兩人的交鋒記錄,請統(tǒng)計雙方的勝、平、負(fù)次數(shù),并且給出雙方分別出什么手勢的勝算最大。
輸入格式:
輸入第1行給出正整數(shù)N(<=105),即雙方交鋒的次數(shù)。隨后N行,每行給出一次交鋒的信息,即甲、乙雙方同時給出的的手勢。C代表“錘子”、J代表“剪刀”、B代表“布”,第1個字母代表甲方,第2個代表乙方,中間有1個空格。
輸出格式:
輸出第1、2行分別給出甲、乙的勝、平、負(fù)次數(shù),數(shù)字間以1個空格分隔。第3行給出兩個字母,分別代表甲、乙獲勝次數(shù)最多的手勢,中間有1個空格。如果解不唯一,則輸出按字母序最小的解。
輸入樣例:
10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J
輸出樣例:
5 3 2
2 3 5
B B

分析

一共有9種情況,全部考慮到就可以,另外甲勝=乙負(fù),甲負(fù)=乙勝,平局情況相同,可以節(jié)省幾個變量。

遇到的坑:
使用scanf讀取有效字符時一定要在前面加空格,因為:對于scanf()而言,%c是個較為特殊的說明符。 %c前沒空格,scanf()將讀取標(biāo)準(zhǔn)輸入流中的第一個字符,%c前有空格,scanf()則讀取標(biāo)準(zhǔn)輸入流中第一個非空白字符。

源代碼

//C/C++實現(xiàn)
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n;
    scanf("%d", &n);
    int jiaWin = 0, jiaLose = 0, draw = 0;
    int jiaJWin = 0, jiaCWin = 0, jiaBWin = 0;
    int yiJWin = 0, yiCWin = 0, yiBWin = 0;
    char jia, yi;
    for(int i = 0; i < n; i++){
        scanf(" %c %c", &jia, &yi);
        if(jia == 'C'){
            if(yi == 'C'){
                draw++;
            }
            else if(yi == 'J'){
                jiaWin++;
                jiaCWin++;
            }
            else if(yi == 'B'){
                jiaLose++;
                yiBWin++;
            }
        }
        else if(jia == 'J'){
            if(yi == 'C'){
                jiaLose++;
                yiCWin++;
            }
            else if(yi == 'J'){
                draw++;
            }
            else if(yi == 'B'){
                jiaWin++;
                jiaJWin++;
            }
        }
        else if(jia == 'B'){
            if(yi == 'C'){
                jiaWin++;
                jiaBWin++;
            }
            else if(yi == 'J'){
                jiaLose++;
                yiJWin++;
            }
            else if(yi == 'B'){
                draw++;
            }
        }
    }
    printf("%d %d %d\n", jiaWin, draw, jiaLose);
    printf("%d %d %d\n", jiaLose, draw, jiaWin);
    printf("%c ", jiaBWin >= jiaCWin ? (jiaBWin >= jiaJWin ? 'B' : 'J') : (jiaCWin >= jiaJWin ? 'C' : 'J'));
    printf("%c\n", yiBWin >= yiCWin ? (yiBWin >= yiJWin ? 'B' : 'J') : (yiCWin >= yiJWin ? 'C' : 'J'));
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 我的PAT系列文章更新重心已移至Github,歡迎來看PAT題解的小伙伴請到Github Pages瀏覽最新內(nèi)容。...
    OliverLew閱讀 904評論 0 1
  • 大家應(yīng)該都會玩“錘子剪刀布”的游戲:兩人同時給出手勢,勝負(fù)規(guī)則如圖所示: 輸入樣例: 10C JJ BC BB B...
    小路_閱讀 817評論 0 0
  • 今天語文老師把第一課第二課第三課里面的生字都混在一起教我們組詞了。下午數(shù)學(xué)老師教我們寫6789。下課休息時我和賈承...
    褚鵬超閱讀 234評論 0 2
  • 2015年11月21日 出行 早上5點就早早的起床,收拾妥當(dāng)去坐機(jī)場大巴,趕上了5點40的機(jī)場快線,小白先森送我去...
    Flugel_Yan閱讀 301評論 0 0
  • 1.初見小說 少女情節(jié)總懷春,青春期的時候小姑娘都愛看些言情,也是一種對異性關(guān)系的渴望,生活中沒有機(jī)會早戀,就把自...
    阿慧阿閱讀 443評論 0 0