1018 锤子剪刀布 (20分) 输入格式: 输出格式: 输入样例: 这题有问题,只有测试点2是正确的,其他都错了,没有找出来错在哪里,觉得逻辑完全没问题(苦笑.jpg)先放一放,以后再看
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 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#include<stdio.h> int Judge(char a,char b); void JudgeMax(int j,int c,int b); int jc,jb,jj,yc,yb,yj; int Judge(char a, char b) { // flag: 0 平,1 甲胜,2 乙胜 // 甲 C J B // 乙 C J B C J B C J B // 0 1 2 2 0 1 1 2 0 int flag = 0; if(a == 'C' && b == 'J') { flag = 1; jc++; } if(a == 'J' && b == 'B') { flag = 1; jj++; } if(a == 'B' && b == 'C') { flag = 1; jb++; } if(a == 'C' && b == 'B') { flag = 2; yb++; } if(a == 'J' && b == 'C') { flag = 2; yc++; } if(a == 'B' && b == 'J') { flag = 2; yj++; } return flag; } void JudgeMax(int j,int c,int b) { int max = b; //初始为B //重复情况: // b == c 或者 b == j或者 b == c == j: // max 不变仍为b,则输出也是 B // c == j > b: 先判断第一个if,第二个if max不变仍为c,输出 C if(c > max) max = c; if(j > max) max = j; // b - c - j 顺序输出 if(max == b) printf("B"); else if(max == c) printf("C"); else if(max == j) printf("J"); } int main() { int n; scanf("%d",&n); int i; char a,b; int js,jf,p; int flag; js = jf = p = 0; jc = jb = jj = yc = yb = yj = 0; for(i = 0; i < n; i++) { fflush(stdin); //清除缓冲区,去除回车、空格的影响 scanf("%c %c",&a,&b); flag = Judge(a,b); // 甲胜 = 已负 甲平 = 乙平 甲负 = 乙胜 if(flag == 0) p++; if(flag == 1) js++; if(flag == 2) jf++; } printf("%d %d %dn",js,p,jf); printf("%d %d %dn",jf,p,js); // printf("%d %d %dn%d %d %dn",jj,jc,jb,yj,yc,yb); JudgeMax(jj,jc,jb); printf(" "); JudgeMax(yj,yc,jb); }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算