#include<stdio.h>
int main()
{
int a1,a2,b1,b2,ja,jb,N,ha=0,hb=0,na,nb;
scanf("%d%d",&ja,&jb);//甲的酒量和乙的酒量
scanf("%d",&N);//循环行数
int i,flag=0;
for(i=0;i<N;i++)
{
scanf("%d%d%d%d",&a1,&a2,&b1,&b2);//甲喊 甲划 乙喊 乙划
if(a2==a1+b1) ja--,ha++;//甲的酒量-1,喝的杯数+1
if(b2==a1+b1) jb--,hb++;//同上
if(a2==a1+b1&&b2==a1+b1) ja++,jb++,flag++;//如果甲乙同时输,酒量不变(防止倒下的轮数相同),记录同输的次数
if(ja==0) na=i;//甲倒下时的轮数
if(jb==0) nb=i;//乙倒下时的轮数
}
if(na<nb) printf("A\n%d\n",hb+ja-flag);
else printf("B\n%d\n",ha+jb-flag);
return 0;
}
同时输那行没必要,题目会保证有一个人先倒,可以在循环中判断是否有人倒下了,如果有人倒了,记录此时状态,后面的输入就不做判断了,出循环后输出状态即可
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N;
int arr[100][4];
int jia=0, yi=0;
scanf("%d", &N);
for(int i=0; i<N; i++)
{
for(int j=0; j<4; j++)
{
scanf("%d", &arr[i][j]);
}
}
for(int k=0; k<N; k++)
{
if(arr[k][0]+arr[k][2] == arr[k][1] && arr[k][0]+arr[k][2] != arr[k][3])
{
yi++;
}
if(arr[k][0]+arr[k][2] != arr[k][1] && arr[k][0]+arr[k][2] == arr[k][3])
{
jia++;
}
}
printf("%d %d", jia, yi);
return 0;
}
输入划拳轮数
输入划拳记录
-记录存数组
判断每轮的正确性
a[0] + a[2]与a[1]和a[3]
记录喝酒杯数