PAT B1018 java(18分)

思路:

可以设置一个数组,存放甲以B,C,J赢的次数。

同样可以设置一个数组,存放乙以B,C,J赢的次数。

然后甲win=乙Lose,甲lose=乙win。就可以只判断甲的输赢情况即可。

功能函数:

judge()用来判断胜负的情况。maxIndex()用来返回最大索引,就是一个比较交换函数。

注意事项:我之前想用str.tocharArray()直接转换成char的数组,然后传到judge函数参数进行判断,但不对,我一直不知道为什么。

只好换了函数,用str.charAt(0)获取输入的第一个字符。

代码如下:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.*;

import java.math.*;

 

public class Main {

public int win_jia=0,ping_jia=0,lose_jia=0;

int win_yi=0,ping_yi=0,lose_yi=0;

int jiawin[]=new int[3]; // 存放 C,J,B 的次数

int yiwin[]=new int[3]; //存放 C,J,B的次数

 

char signs[]={'B','C','J'};


 

public void judge(char jia,char yi) {

if (jia == yi) {

ping_jia++;

ping_yi++;

}else if(jia=='C'&& yi=='J'){

win_jia++;

jiawin[1]++;

}else if(jia=='C'&& yi=='B'){

lose_jia++;

yiwin[0]++;

}else if(jia=='B'&& yi=='J'){

lose_jia++;

yiwin[2]++;

}else if(jia=='B'&& yi=='C'){

win_jia++;

jiawin[0]++;

}else if(jia=='J'&& yi=='C'){

lose_jia++;

yiwin[1]++;

}else if(jia=='J'&& yi=='B'){

win_jia++;

jiawin[2]++;

}

 

}

 

public void output(){

System.out.println(win_jia+" "+ping_jia+" "+lose_jia);

System.out.println(lose_jia+" "+ping_jia+" "+win_jia);

System.out.println(signs[maxIndex(jiawin)]+" "+signs[maxIndex(yiwin)]);


 

}

 

//返回最大索引

private int maxIndex(int num[]){

int index=0;

int max=num[0];

for(int i=0;i<3;i++){

if(max<num[i]){

max=num[i];

index=i;

}

}

return index;

}


 

public static void main(String args[]){

Scanner sc=new Scanner(System.in); //输入数据

String str=sc.nextLine();

int n=Integer.parseInt(str);

Main b=new Main();

 

for(int i=0;i<n;i++){

char jia=sc.next().charAt(0);

char yi=sc.next().charAt(0);

b.judge(jia,yi);

}

b.output();

 

}//main

}//class

运行如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值