田忌赛马的故事背景相信大家都知道,齐威王用上中下三等马和田忌的上中下三等马比赛,其中同等级的马齐威王的马跑的更快。
要求田忌的马出场顺序要输入,齐威王的马出场顺序已确定。田忌输入的马出场顺序,和齐威王的马确定的出场顺序比赛,输出最后结果,齐威王获胜还是田忌获胜。
代码和注释如下
import java.util.*;
public class Race
{
public static void main(String[] args)
{
System.out.println("1代表下等马,2代表中等马,3代表上等马");//用不同数字代替不同等级的马
int i;
int qi[] ={ 3, 2, 1 };
System.out.print("齐威王马的出场顺序: ");//这里定义了一个数组,含有三个元素,并赋值,齐威王马的出场顺序是元素的前后顺序
for (i = 0; i < 3; i++)
{
System.out.print(qi[i] + " ");//遍历数组,输出齐威王马的出场顺序
}
System.out.println();
System.out.println("请输入三个数字,其中1代表下等马,2代表中等马,3代表上等马:");
Scanner sc = new Scanner(System.in);
System.out.println("please input first hors:");
int firstNum = sc.nextInt();
System.out.println("please input second hors:");
int secondNum = sc.nextInt();
System.out.println("please input third hors:");
int thirdNum = sc.nextInt();//从键盘依次录入三个数,前后顺序是田忌马的出场顺序
int j;
int tian[] = new int[3];
tian[0] = firstNum;
tian[1] = secondNum;
tian[2] = thirdNum;//定义一个数组,并将键盘录入的三个数按顺序赋值给数组元素
System.out.println("田忌马的出场顺序: " + firstNum + ", " + secondNum + " , " + thirdNum);
Race race=new Race();定义race对象,让其调用saima方法
race.saima(qi,tian);//访问saima方法
}
//定义saima方法
public void saima(int[]qi,int[]tian){
int j;
int qicount = 0, tiancount = 0;
for (j = 0; j < 3; j++)
{
if (qi[j] >= tian[j])
{
System.out.println("第" + (j + 1) + "局齐威王胜 ");
qicount++;
} else
{
System.out.println("第" + (j + 1) + "局田忌胜 ");
tiancount++;//统计齐威王和田忌两人的获胜次数
}
}
if (qicount > tiancount)
{
System.out.println("齐威王胜");
} else
{
System.out.println("田忌胜");
}//比较两人获胜次数的大小,输出获胜次数多的人的名字
}
}
最后如果田忌胜场多,则输出田忌胜,否则输出齐威王胜。