免费网站建设优化成人短期培训学校
题目来源:
PTA | 程序设计类实验辅助教学平台
代码实现(代码一):
这个版本是自己写的;(很好理解,但定义了很多变量),有部分样例测试不通过
#include <iostream>
using namespace std;
int main(){int n;cin>>n;char a[n],b[n];int c[26]={0},d[26]={0};//记录甲乙获胜的手势 int a1=0,a2=0,a3=0;//甲赢,甲平局 甲输 int b1=0,b2=0,b3=0;for(int i=0;i<n;i++){cin>>a[i]>>b[i];if((a[i]=='C'&&b[i]=='J')||(a[i]=='J'&&b[i]=='B')||(a[i]=='B'&&b[i]=='C')) //甲获胜{a1++; b3++;c[a[i]-'A']++;}if((a[i]=='B'&&b[i]=='J')||(a[i]=='C'&&b[i]=='B')||(a[i]=='J'&&b[i]=='C')) //乙获胜{;b1++;a3++;d[b[i]-'A']++;}else if(a[i]==b[i])//平局{;b2++;a2++;}}cout<<a1<<" "<<a2<<" "<<a3<<endl;cout<<b1<<" "<<b2<<" "<<b3<<endl;int num1=0,num2=0;//记录获胜次数最多的手势 char e,f;for(int i=0;i<26;i++){if(c[i]>num1){num1=c[i];e=i+'A';} if(d[i]>num2){num2=d[i];f=i+'A';} }//cout<<num1<<" "<<num2;cout<<e<<" "<<f;return 0;
}
代码实现;(代码二 柳神版本):
#include <iostream>
using namespace std;
int main() {int n;cin >> n;int jiawin = 0, yiwin = 0;int jia[3] = {0}, yi[3] = {0};for (int i = 0; i < n; i++) {char s, t;cin >> s >> t;if (s == 'B' && t == 'C') {jiawin++;jia[0]++;} else if (s == 'B' && t == 'J') {yiwin++;yi[2]++;} else if (s == 'C' && t == 'B') {yiwin++;yi[0]++;} else if (s == 'C' && t == 'J') {jiawin++;jia[1]++;} else if (s == 'J' && t == 'B') {jiawin++;jia[2]++;} else if (s == 'J' && t == 'C') {yiwin++;yi[1]++;}}cout << jiawin << " " << n - jiawin - yiwin << " " << yiwin << endl << yiwin << " " << n - jiawin - yiwin << " " << jiawin << endl;int maxjia = jia[0] >= jia[1] ? 0 : 1;maxjia = jia[maxjia] >= jia[2] ? maxjia : 2;int maxyi = yi[0] >= yi[1] ? 0 : 1;maxyi = yi[maxyi] >= yi[2] ? maxyi : 2;char str[4] = {"BCJ"};cout << str[maxjia] << " " << str[maxyi];return 0;
}
题目心得: