PAT:B1046. 划拳(15)

来源:互联网 发布:linux shell脚本例子 编辑:程序博客网 时间:2024/05/21 17:25

PAT:B1046. 划拳(15)

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。
下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。
输入格式:
输入第一行先给出一个正整数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

思路:

写一个方法,当输入这个四个数字之后,得到谁赢了,
返回到main中,

方法一:

#include<stdio.h> //写一个方法,-1是乙赢,0是平局,1是甲赢int whowin(int A1, int H1, int A2, int H2){    int num;    if(H1 == (A1 + A2) && H2 != (A1 + A2))        num = +1;    else if(H1 != (A1 + A2) && H2 == (A1 + A2))        num = -1;    else         num = 0;        return num; } int main(){    int T,num;    int a = 0,b = 0;    //a.b代表甲和乙喝酒的次数     int A1,H1,A2,H2;    scanf("%d",&T);    while(T--)    {        scanf("%d %d %d %d", &A1, &H1, &A2, &H2);        num = whowin(A1,H1,A2,H2);        if(num == -1)            a++;        else if(num == 1)            b++;    }    printf("%d %d\n", a, b);}

方法二:

#include<stdio.h>int main(){    int failA = 0,failB = 0;    int T;    int a1,h1,b1,h2;    scanf("%d",&T);    while(T--)    {        scanf("%d %d %d %d", &a1, &h1, &b1, &h2);        if(h1 == a1+b1 && h2 != a1+b1)            failB++;        if(h1 != a1+b1 && h2 == a1+b1)            failA++;    }    printf("%d %d\n", failA, failB);    return 0;}

这里写图片描述

原创粉丝点击