首页 > 其他分享 >pat乙级 1018 锤子 剪刀 布

pat乙级 1018 锤子 剪刀 布

时间:2023-03-02 17:44:14浏览次数:39  
标签:pat ++ 乙级 break ap bp && printf 1018

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>



int max(int a,int b){
    return a>b?a:b;
}
int main()
{
    int n;
    scanf("%d",&n);
    getchar(); 
    char a,b;
    int ap[6]={0},bp[6]={0};
    //0 1 2 3 4 5 分别代表 胜利 平局 失败 锤子胜利 剪刀胜利 布胜利
    while(scanf("%c %c",&a,&b)!=EOF){
        getchar();
        if(a=='C'&&b=='J'){
            ap[0]++;
            bp[2]++;
            ap[3]++;
        }
        if(a=='C'&&b=='C'){
            ap[1]++;
            bp[1]++;
        }
        if(a=='C'&&b=='B'){
            ap[2]++;
            bp[0]++;
            bp[5]++;
        }
        if(a=='J'&&b=='B'){
            ap[0]++;
            bp[2]++;
            ap[4]++;
        }
        if(a=='J'&&b=='J'){
            ap[1]++;
            bp[1]++;

        }
        if(a=='J'&&b=='C'){
            ap[2]++;
            bp[0]++;
            bp[3]++;
        }
        if(a=='B'&&b=='C'){
            ap[0]++;
            bp[2]++;
            ap[5]++;
        }
        if(a=='B'&&b=='B'){
            ap[1]++;
            bp[1]++;
        }
        if(a=='B'&&b=='J'){
            ap[2]++;
            bp[0]++;
            bp[4]++;
        }
    }
    printf("%d %d %d\n",ap[0],ap[1],ap[2]);
    printf("%d %d %d\n",bp[0],bp[1],bp[2]);
    while(1){

    
    if(ap[3]>=ap[4]&&ap[3]>ap[5]){
        printf("C ");break;
    }
    if(ap[3]>ap[4]&&ap[3]==ap[5]){
        printf("B ");break;
    }
    if(ap[4]>ap[3]&&ap[4]>ap[5]){
        printf("J ");break;
    }
    if(ap[4]==ap[3]&&ap[4]>ap[5]){
        printf("C ");break;
    }
    if(ap[4]>=ap[3]&&ap[4]==ap[5]){
        printf("B ");break;
    }
    if(ap[5]>=ap[3]&&ap[5]>=ap[4]){
        printf("B ");break;
    }

}
while(1){

    
    if(bp[3]>=bp[4]&&bp[3]>bp[5]){
        printf("C");break;
    }
    if(bp[3]>bp[4]&&bp[3]==bp[5]){
        printf("B");break;
    }
    if(bp[4]>bp[3]&&bp[4]>bp[5]){
        printf("J");break;
    }
    if(bp[4]==bp[3]&&bp[4]>bp[5]){
        printf("C");break;
    }
    if(bp[4]>=bp[3]&&bp[4]==bp[5]){
        printf("B");break;
    }
    if(bp[5]>=bp[3]&&bp[5]>=bp[4]){
        printf("B");break;
    }

}
    return 0;
}

写的太冗长了 但不知道怎么写简练写 以后想到再补吧

标签:pat,++,乙级,break,ap,bp,&&,printf,1018
From: https://www.cnblogs.com/Npc-Hb/p/17172796.html

相关文章

  • pat乙级 1017 A除以B 模拟除法
    #include<stdio.h>#defineMAX_A1000intA[MAX_A];intB;/*除数*/intnum;/*A被除数有多少位*/voidread_AB();voiddivision_print();/*************......
  • Decorator Pattern
    装饰器模式:参考https://www.runoob.com/design-pattern/decorator-pattern.html动态地给一个对象添加一些额外的功能。装饰类和被装饰类可以独立发展,不会相互耦合,装饰模......
  • pat乙级1016 部分A+B
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmain(){intcounta=0,countb=0;intpa=0,pb=0;chara[10],......
  • pat乙级:模拟链表问题(汇总,包含所有pat中链表题目分析)
    更新:优化文章结构,增加了部分内容如(1110区块反转)和自己代码和他人代码分析。看完你就懂了转载请注明出处和链接地址:(https://www.cnblogs.com/ahappyfool/p/17156470.htm......
  • 分析总结一下所有有关打印题目的套路和思路:pat乙级:1109 擅长C, 1008元素循环右移,1050
    分析:首先你要明白第一件事:所有要打印东西的题目打印都是从第一行到最后一行,从第一列到最后一列,你是没办法跳着打印的。可以看看其他几个打印题目1008元素循环右移,1050螺......
  • Prototype Pattern
    原型模式:(可以实现Serializable或者Cloneable接口)参考:https://www.runoob.com/design-pattern/prototype-pattern.htmlhttps://www.cnblogs.com/xrq730/p/4905907.html当......
  • unable to find valid certification path to requested target
    摘要:记录一下,防止忘记。当接口调用https接口的时候,需要证书授权认证 一、下载证书(需要下载cer格式的) 导出选择这时候生成一个der格式的证书,别慌,再双击这个der文......
  • 对于hostPath的简单使用
    简单使用了hostPath,去做一些目录以及二进制的映射apiVersion:v1kind:Podmetadata:name:health-checklabels:app:health-checkspec:nodeName:k8s-m......
  • WPF中图形表示语法详解(Path之Data属性语法)
    老规矩,看图说话。先看显示效果:(图1)XAML(代码A):<Pagexmlns="​​http://schemas.microsoft.com/winfx/2006/xaml/presentation​​​"xmlns:x="​​http://schemas.microsof......
  • pathlib相关操作
    importpathlibbase_dir=pathlib.Path('E:/测试目录A/测试目录B/测试文档.txt')#获取父级目录parent=base_dir.parentprint(parent)#E:\测试目录A\测试目录B......