编程练习:福利彩票中心,实现随机生成双色球号码,实现下注号码对比。 基础知识:1.数组 2.循环逻辑

基础知识:1.数组 2.循环逻辑

  • 实现随机生成双色球号码: [ 04 12 30 08 15 26 ] [ 11 ]
    思路:
    蓝球池 { “01”,“02”,“03”,“04”, … “16” } 16取1
    红球池 { “01”,“02”,“03”,“04”, … “33” } 33取6
    下注,开奖 都是红球六个 蓝球一个

1.先定义后台随机生成的本期双色球中奖号码

  • 注意随机生成 不可生成重复号码
//红球、蓝球的中奖号码个数
		int[] red = new int[6];
		int[] blue = new int[1];
		Random rd =new Random();
		//产生蓝色中奖号码
		blue[0] = rd.nextInt(16)+1;
		//产生红色中奖号码
		for (int i = 0; i < red.length; i++) {
			red[i] = rd.nextInt(33)+1;
			//去重处理,避免重复号码
			for (int j = 0; j <= i-1; j++) {
				if (red[i]==red[j]) {
					i--;
					continue;
				}
			}
		}

2.定义顾客下注的号码数组

  • 注意红球号码范围1-33号,蓝球1-16号,不可超出
  • 一注中不可下注重复号码
//定义下注的号码数组
		int[] redbox = new int[6];
		int[] bluebox = new int[1];
		Scanner sc = new Scanner(System.in);
		System.out.println("=====欢迎来到福利彩票中心双色球彩注=====");
		System.out.println("红球号码1-33,蓝球号码1-16,请勿重复号码下注......");
		A:for (int i = 1; i <= 7; i++) {
			//1-6位号码输入红球
			if (i<7) {
				System.out.println("请输入你要买的第"+i+"个红球号码");
				int x = sc.nextInt();
				//红球号码范围1-33,超出重新输入
				if (x > 33 || x < 1) {
					System.out.println("注意范围,红球1-33!请重新输入!");
					i--;
					continue;
				}
				redbox[i-1]  = x;
				//去重
				for (int j = 0; j < i-1; j++) {
					if (x==redbox[j]) {
						i--;
						System.out.println("头给你捶歪了!号码重复了!重新输!");
						continue A;
					}
				}
			}else {
				System.out.println("请输入你要买的蓝球号码");	
				int x = sc.nextInt();
				//1-16为蓝球号码
				if (x < 1 || x>16) {
					System.out.println("头给你捶歪了!蓝球1-16,注意范围!重新输!");
					i--;
					continue;
				}
				bluebox[0] = x;
			}	
		}
		System.out.println("你买的号码为:"+Arrays.toString(redbox)+Arrays.toString(bluebox));
		System.out.println("本期双色球中奖号码为:"+Arrays.toString(red)+Arrays.toString(blue));

3.下注双色球号码与后台产生号码对比

        //中奖号码个数
		int n=0;
		//定义对笔过后红球下注的展示数组
		int[] redshow = new int[6]; 
		//展示数组元素先全部替换为0
		Arrays.fill(redshow, 0);
		int[] blueshow = {0};
		
		//下注号码和产生的中奖号码对比
		for (int i = 0; i < redbox.length; i++) {
			for (int j = 0; j < redbox.length; j++) {
				//每个元素遍历对比一遍,true则中奖号码个数加1,把中奖号码赋值给展示数组
				if (red[i]==redbox[j]) {
					n++;
					redshow[j]=redbox[j];
				}
			}
		}
		//蓝球数组一个元素,直接对比
		if (blue[0]==bluebox[0]) {
			n++;
			blueshow[0]=bluebox[0];
		}
		System.out.println("\n中奖号码个数:"+n+",买中的号码为:"+Arrays.toString(redshow)+Arrays.toString(blueshow));
	}

4.输出展示效果

输出展示

猜你喜欢

转载自blog.csdn.net/x4pp5/article/details/107571494