【每天例题】蓝桥杯 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; }
运行结果