• PAT B1046. 划拳


    题目描述
    划拳是中国酒文化中一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。
    下面给出甲、乙两人的划拳记录,请统计他们最后分别喝了多少杯酒。


    输入格式
    第一行先给出一个正整数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

    思路:

            ①甲对了,乙错。乙喝一杯

            ②乙对了,甲错。甲喝一杯

            ③两人都错,都不喝。两人都对也不喝。

    因此,用两个if语句进行判断即可。

    易错点:

            ①计数的count变量不要放在while循环里,这样每次count都会重新赋值为0。

            ②将a1+b1赋值给c一定要在scanf之后,不然,a1,b1中初始为0,将0赋给了c,而不是你真正想得到的值。

    代码实现: 

    1. #include
    2. int main()
    3. {
    4. int N;
    5. int count1 = 0,count2 = 0; //count1记录甲喝的杯数,count2记录乙喝的杯数
    6. scanf("%d",&N);
    7. while(N--)
    8. {
    9. int a1,a2,b1,b2; //甲喊,甲划 ,乙喊,乙划
    10. scanf("%d%d%d%d",&a1,&a2,&b1,&b2);
    11. int c = a1 + b1; // 甲喊 + 乙喊
    12. if(c == a2 && c != b2) //甲对,乙错,乙喝一杯
    13. {
    14. count2++;
    15. }
    16. else if(c == b2 && c != a2) //乙对,甲错, 甲喝一杯
    17. {
    18. count1++;
    19. }
    20. }
    21. printf("%d %d\n",count1,count2);
    22. return 0;
    23. }

  • 相关阅读:
    【Spring Boot系列】- Spring Boot侦听器Listener
    C# OpenCvSharp DNN Low Light image Enhancement
    vim创建文件
    电脑怎么截图,4种简单常用的截图方法
    微信小程序开发实战(网络请求设置)
    C++模拟鼠标键盘操作
    ATF源码篇(五):docs文件夹-Components组件(4)
    鸿蒙开发(九)UI实战 - 线性布局实现登录界面
    写代码的七八九十宗罪,多图、胆小慎入!
    分布式锁之mysql 锁
  • 原文地址:https://blog.csdn.net/m0_63829662/article/details/139724396