package 双色球;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int[] luckNumbers=createLuckNumber();
printArray(luckNumbers);
int[] userNumber=userInputNumbers();
printArray(userNumber);
judge(luckNumbers,userNumber);
}
private static void judge(int[] luckNumbers, int[] userNumber) {
int redHitNumbers=0;
int blueHitNumber=0;
for (int i=0;i< userNumber.length-1;i++){
for (int j=0;j< luckNumbers.length-1;j++){
if (userNumber[i]==luckNumbers[j]){
redHitNumbers++;
break;
}
}
}
blueHitNumber=luckNumbers[6]==userNumber[6]?1:0;
System.out.println("中奖号码是:");
printArray(luckNumbers);
System.out.println("投注号码是:");
printArray(userNumber);
System.out.println("命中红球:"+redHitNumbers+"个");
System.out.println(blueHitNumber==1?"有":"没有"+"命中蓝球");
if(blueHitNumber==1&&redHitNumbers<3){
System.out.println("中5元");
} else if (blueHitNumber==1&&redHitNumbers==3||blueHitNumber==0&&redHitNumbers==4) {
System.out.println("中100元");
} else if (blueHitNumber==1&&redHitNumbers==4||blueHitNumber==0&&redHitNumbers==5) {
System.out.println("中200元");
}else if (blueHitNumber==1&&redHitNumbers==5) {
System.out.println("中3000元");
}else if (blueHitNumber==0&&redHitNumbers==6) {
System.out.println("中500万元");
}else if (blueHitNumber==1&&redHitNumbers==6) {
System.out.println("中1000万元");
}
}
public static void printArray(int[] arr){
for (int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println();//换行
}
private static int[] userInputNumbers() {
int[] numbers=new int[7];
Scanner sc=new Scanner(System.in);
for (int i=0;i-1;i++){
System.out.println("请输入第"+(i+1)+"个红球号码(1-33,要求不重复):");
int data=sc.nextInt();
numbers[i]=data;
}
System.out.println("请输入蓝球号码(1-16):");
numbers[numbers.length-1]=sc.nextInt();
return numbers;
}
public static int[] createLuckNumber(){
//定义一个动态数组
int[] numbers = new int[7];
Random r = new Random();
for (int i = 0; i < numbers.length - 1; i++) {
while (true) {
int data = r.nextInt(33) + 1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (numbers[j] == data) {
flag = false;
break;
}
}
if (flag) {
numbers[i] = data;
break;
}
}
}
numbers[numbers.length-1]=r.nextInt(16)+1;
return numbers;
}
}
6 14 17 3 28 32 16
请输入第1个红球号码(1-33,要求不重复):
6
请输入第2个红球号码(1-33,要求不重复):
6
请输入第3个红球号码(1-33,要求不重复):
6
请输入第4个红球号码(1-33,要求不重复):
6
请输入第5个红球号码(1-33,要求不重复):
6
请输入第6个红球号码(1-33,要求不重复):
6
请输入蓝球号码(1-16):
6
6 6 6 6 6 6 6
中奖号码是:
6 14 17 3 28 32 16
投注号码是:
6 6 6 6 6 6 6
命中红球:6个
没有命中蓝球
中500万元
我怎么修改让命中红球只有1个而不是6个
将6个红球保存到数组,然后判断是否在数组
for (int i=0;i< userNumber.length-1;i++){
for (int j=0;j< luckNumbers.length-1;j++){
if (userNumber[i]==luckNumbers[j]){
redHitNumbers++;
break;
这个地方不要用两个循环,一个for就够了,要一一对应才行,userNumber[i]==luckNumbers[i],都用i循环。