weixin_44012604 2021-07-28 17:03 采纳率: 0%
浏览 105

PTA1018锤子剪刀布测试点1问题

#include
//#include
//#include
//#include
#include
//#include

using namespace std;

bool asb(char a, char b) {//a胜b,返回true 否则 false
if (a == 'B' && b == 'C')return true;
else if ( a == 'C'&&b == 'J' )return true;
else if (a == 'J' && b == 'B')return true;
else return false;
}

int main() {
int n;
char a, b, a1[3] = { 'B','C','J' }, b1[3] = { 'B','C','J' };//a为甲,b为乙,
int aa = 0, bb = 0, pp = 0, p = 0, a11[3] = {0}, b11[3] = { 0 };//aa为甲胜次数,bb
//为乙胜次数,pp为平的次数,p判断甲乙谁胜,a11,b11分别为胜利出现的字符次数
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a >> b;
if (asb(a, b)) {
aa++;
p = 1;
}//甲胜,胜利次数aa++
else if (asb(b, a)) {
bb++;
p = 2;
}//乙胜,胜利次数bb++
else {
pp++;
p = 0;
}//平局
if (p == 1)
for (int j = 0; j < 3; j++)
if (a1[j] == a) {
a11[j] ++;
break;
}//甲胜,胜利字符出现次数a11++;
if(p==2)
for (int j = 0; j < 3; j++)
if (b1[j] == b) {
b11[j] ++;
break;
}//乙胜,胜利字符出现次数b11++;
}
a11[1] > a11[2] ? p=1 : p = 2;
a11[p] > a11[0] ?p=p : p = 0;
a = a1[p];//全平局p=0(表现字符为B),否则为甲胜利出现次数最多的字符
b11[1] > b11[2] ? p = 1 : p = 2;
b11[p] > b11[0] ? p = p : p = 0;
b = b1[p];//全平局p=0(表现字符为B),否则为乙胜利出现次数最多的字符
cout << aa << ' ' << pp << ' ' << bb<<endl;
cout << bb << ' ' << pp << ' ' << aa<<endl;
cout << a <<' ' << b;
return 0;
}
img

  • 写回答

1条回答 默认 最新

  • 关注

    参考完整代码:

    #include
    using namespace std;
    int main(){
    int n;
    char a,b;
    // int w=0,e=0,l[]={0};
    int w=0,e=0,l=0,w1=0,w2=0,w3=0,e1=0,e2=0,e3=0,l1=0,l2=0,l3=0;
    cin>>n;
    // for(int i=0;i<n;i++){
    while(n--){
    cin>>a>>b;
    if(a=='B'){
    if(b=='B') e1++;
    if(b=='J') l1++;
    if(b=='C') w1++;
    }
    if(a=='J') {
    if(b=='B') w2++;
    if(b=='J')e2++;
    if(b=='C')l2++;
    }
    if(a=='C'){
    if(b=='B') l3++;
    if(b=='J')w3++;
    if(b=='C')e3++;
    }
    
    }
     l=l1+l2+l3;
        w=w1+w2+w3;
    e=e1+e2+e3;
    cout<<w<<" "<<e<<" "<<l<<endl;
    cout<<l<<" "<<e<<" "<<w<<endl;
    if(w1>=w2&&w1>=w3)
            cout<<"B"<<" ";
     if(w2>w1&&w2>w3)
        cout<<"J"<<" ";
     if(w3>w1&&w3>w2)
        cout<<"C"<<" ";
    // else if(w3>=w1&&w3>=w2)
    // cout<<"B"<<" ";
    if(l3>l1&&l3>l2)
    cout<<"B";
    if(l1>=l2&&l1>=l3)
    cout<<"J";
    if(l2>l1&&l2>l3)
    cout<<"C";
    return 0;
    
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月28日

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试