Pat(Basic Level)Practice--1018(锤子剪刀布)
2014-01-28 10:38
302 查看
Pat1018代码
题目描述:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出格式:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。
输入样例:
10 C J J B C B B B B C C C C B J B B C J J
输出样例:
5 3 2 2 3 5 B B
AC代码:
#include<stdio.h> #include<stdlib.h> int main(int atgc,char *argv[]) { int k; int JS=0,JP=0,JF=0;//甲胜,平,负的次数 int YS=0,YP=0,YF=0;//乙胜,平,负的次数 char J,Y;//甲乙出的手势C,J,B int JSCount[3]={0,0,0},YSCount[3]={0,0,0}; //分别代表甲乙B,C,J,胜出的次数 int i,Jmax=-1,Ymax=-1; int m,n; scanf("%d",&k); getchar(); while(k--) { scanf("%c %c",&J,&Y); getchar(); if(J=='C') { if(Y=='C') { JP++; YP++; } else if(Y=='J') { JS++; JSCount[1]++; YF++; } else { JF++; YS++; YSCount[0]++; } } else if(J=='J') { if(Y=='C') { JF++; YS++; YSCount[1]++; } else if(Y=='J') { JP++; YP++; } else { JS++; JSCount[2]++; YF++; } } else { if(Y=='C') { JS++; JSCount[0]++; YF++; } else if(Y=='J') { JF++; YS++; YSCount[2]++; } else { JP++; YP++; } } } for(i=0;i<3;i++) { if(JSCount[i]>Jmax) { Jmax=JSCount[i]; m=i; } if(YSCount[i]>Ymax) { Ymax=YSCount[i]; n=i; } } if(m==0) J='B'; else if(m==1) J='C'; else J='J'; if(n==0) Y='B'; else if(n==1) Y='C'; else Y='J'; printf("%d %d %d\n",JS,JP,JF); printf("%d %d %d\n",YS,YP,YF); printf("%c %c\n",J,Y); return 0; }这题思路很简单就是写的太罗嗦。。。
相关文章推荐
- PAT (Basic Level) Practise (中文)1018. 锤子剪刀布 (20)
- PAT(Basic Level)_1018_锤子剪刀布
- PAT (Basic Level) Practise (中文)1018. 锤子剪刀布 (20)
- PAT (Basic Level)1018. 锤子剪刀布
- PAT Basic Level 1018. 锤子剪刀布(20)
- PAT BASIC LEVEL 1018. 锤子剪刀布 (20)
- PAT Basic Level 1018. 锤子剪刀布 (20) 及最后一个测试点运行超时问题解决
- PAT (Basic Level) Practise (中文)- 1018. 锤子剪刀布 (20)
- PAT (Basic Level) Practise:1018. 锤子剪刀布
- 【C++】浙大PAT (Basic Level)1018. 锤子剪刀布 (20)
- PAT (Basic Level) Practise (中文) 1018. 锤子剪刀布 (20)
- Pat(Basic Level)Practice--1011(A+B和C)
- Pat(Basic Level)Practice--1019(数字黑洞)
- Pat(Basic Level)Practice--1024(科学计数法)
- Pat(Basic Level)Practice--1025(反转链表)
- PAT BASIC 1018 锤子剪刀布
- Pat(Basic Level)Practice--1012(数字分类)
- Pat(Basic Level)Practice--1020(月饼)
- pat basic level 1018
- Pat(Basic Level)Practice--1001(害死人不偿命的3n+1猜想)