A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class LuckynumberDemo {
        public static void main(String[] args) {
                int[] sysRedBallNum = new int[6];        // 系统红球数组
                int sysBuleBallNum;                                        // 系统蓝球
                Random r = new Random();                        // 随机数对象
                int index = 0;                                                // 数组的索引,控制循环次数
               
                // 获取红球数组
                while(true) {
                        // 获取一个1 ~ 33 之间的随机数
                        int num = r.nextInt(33) + 1;
                       
                        // 定义一个标记, 用来标记数组中是否有num这个随机数,有就为false 没有就为true
                        boolean flag = true;
                       
                       
                        // 在向数组中存数据之前,首先要保证数组中没有num这个随机数 , 所以先做一个判断, 并使用一个控制条件来标记数组中是否有这个随机数
                        for (int i = 0; i < sysRedBallNum.length; i++) {
                                if(num == sysRedBallNum[i]) {
                                        flag = false;
                                }
                        }
                       
                        // 向数组中存数据 , 要满足两个条件 , 第一个判断标记为true(也就是数组中没有num这个随机数),第二个index小于6
                        if(flag && index < 6) {
                                sysRedBallNum[index] = num;
                                index ++;
                        }
                       
                        // 循环的出口
                        if(index >= 6) {
                                break;
                        }
                }
               
               
                // 获取蓝球
                sysBuleBallNum = r.nextInt(16) + 1;
               
                // 用户输入6个红球
                int[] userRedBallNum = new int[6];
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入6个红球号码");
                for (int i = 0; i < userRedBallNum.length; i++) {
                        userRedBallNum[i] = sc.nextInt();
                }
               
               
                System.out.println("请输入1个蓝球号码");
                // 用户输入一个蓝球
                int userBuleBallNum = sc.nextInt();
               
                // 打印用户输入的彩票号码
                System.out.print("用户输入的彩票号码为: 红球");
                for (int i = 0; i < userRedBallNum.length; i++) {
                        System.out.print(userRedBallNum[i] + " ");
                }
                System.out.println("蓝球" + userBuleBallNum);
               
                // 统计中奖个数
                int buleBallCount = sysBuleBallNum == userBuleBallNum ? 1 : 0;
               
                int redBallCount = 0;
               
                // 循环嵌套遍历两个数组,获取中奖个数
                for (int i = 0; i < userRedBallNum.length; i++) {
                        for (int j = 0; j < sysRedBallNum.length; j++) {
                                if(userRedBallNum[i] == sysRedBallNum[j]) {
                                        redBallCount++;
                                }
                        }
                }
               
                // 打印中奖信息
                if(redBallCount == 6 && buleBallCount == 1) {
                        System.out.println("走狗屎运了,您中了一等奖!500万!!!");
                }else if(redBallCount == 5 && buleBallCount == 1) {
                        System.out.println("哇~太厉害了,您中了二等奖");
                }else if(redBallCount == 4 || (redBallCount == 4 && buleBallCount == 1)) {
                        System.out.println("恭喜您,您中了三等奖");
                }else if(redBallCount == 1 && buleBallCount == 1) {
                        System.out.println("四等奖也不错哦!~");
                }else{
                        System.out.println("很遗憾,没有中奖,再接再厉吧~");
                }
               
                Arrays.sort(sysRedBallNum);
                // 打印本期中奖号码
                System.out.print("本期中奖号码为: 红球");
                for (int i = 0; i < sysRedBallNum.length; i++) {
                        System.out.print(sysRedBallNum[i] + " ");
                }
                System.out.println("蓝球" + sysBuleBallNum);
               
        }
}

2 个回复

倒序浏览
抢个沙发,代码虽然长,仔细分析看懂就很简单了
回复 使用道具 举报
1.如果随机数产生相同的数怎么办?
2.随机数产生的6个红球号码应该是有序的?
3.键盘输入的红球和篮球万一不是数字怎么办?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马