【每天例题】蓝桥杯 C语言 生活大爆炸版石头剪刀布
生活大爆炸版石头剪刀布
题目




思路分析
1.先输入甲乙对应的周期
2.将周期对应放入每轮出拳
3.进行输赢判断
代码
#include<stdio.h>
#include<math.h>
int main()
{
int N,NA,NB;
int i,j,k;
int c=0,d=0;
int acount=0,bcount=0;
scanf("%d %d %d",&N,&NA,&NB);
int a[NA],b[NB];
int A[N],B[N];
for(i=0;i<NA;i++)//输入甲的周期顺序
{
scanf("%d",&a[i]);
}
for(j=0;j<NB;j++)//输入乙的周期顺序
{
scanf("%d",&b[j]);
}
i=0;
j=0;
while(c<N)//每一轮甲的顺序
{
A[c]=a[i];
c++;
i++;
if(i==NA)
{
i=0;
}
}
while(d<N)//每一轮乙的顺序
{
B[d]=b[j];
d++;
j++;
if(j==NB)
{
j=0;
}
}
for(k=0;k<N;k++)
{
switch(abs(A[k]-B[k]))//甲,乙比较
//0 表示"剪刀",1 表示"石头",2 表示"布",3 表示"蜥蜴人", 4 表示"斯波克"
{
case 0:break;//平局
case 1: if((A[k]==3&&B[k]==4)||A[k]>B[k])
{
if(A[k]==4&&B[k]==3)
{
bcount++;
}
else
{
acount++;
}
}
else
{
bcount++;
}
break;
case 2:if(A[k]<B[k])
{
acount++;
}
else
{
bcount++;
}
break;
case 3:if((A[k]==0&&B[k]==3)||(A[k]==4&&B[k]==1))
{
acount++;
}
else
{
bcount++;
}
break;
case 4:if(A[k]>B[k])
{
acount++;
}
else
{
bcount++;
}
break;
}
}
printf("%d %d\n",acount,bcount);
return 0;
}
运行结果


浙公网安备 33010602011771号