使用带有来自随机生成器的值的一维数组编写程序,以打印出每个组合被一对骰子掷出的次数

分配的目标是使用并行的一维数组,但也允许使用二维数组。


我可以打印出不同的组合,例如由一对骰子滚动的 1,1(也称为蛇眼)。


试图打印出每个组合滚动的次数而不打印组合的滚动次数是很困难的。


前任:


输入您想要掷骰子的次数:5


你掷了:1 和 5 共 1 次- 我不想要的


您掷出:4 和 3 共 1 次


你滚动了:1 和 5 总共 2 次 - 对于重复,这就是我想要打印的全部内容


您掷出:3 和 3 共 1 次


您掷出:2 和 2 共 1 次


我知道在增加组合数组(保存每个组合的滚动次数)后立即打印出来的循环是不正确的,但我坚持如何修改它。


我认为组合 [0][0] 是 1,1 被滚动的次数,组合 [0][1] 是 1,2 被滚动的次数,依此类推。


import java.util.Scanner;


public class Dice {


Scanner read = new Scanner(System.in);

    Random diceRoll = new Random();

    int numRolls;

    int[] dice1 = new int [1000];

    int[] dice2 = new int [1000];

    int[][] combo = new int[6][6];



public void getRolls() 

{

    System.out.println("Enter the number of times you want to roll a pair of dice: ");

    numRolls = read.nextInt();


    dice1 = new int[numRolls];

    dice2 = new int[numRolls];


    for (int i = 0; i < dice1.length; i++)

    {

        dice1[i] = diceRoll.nextInt(6) + 1;

        dice2[i] = diceRoll.nextInt(6) + 1;

    }


    System.out.println("\n");




    for (int j = 0; j < combo.length; j++)

    {

        for (int k = 0; k < combo[0].length; k++)

        {

            combo[j][k] = 0;

        }

    }


   for (int m = 0; m < numRolls; m++)

    {

        combo[dice1[m] - 1][dice2[m] - 1]++;


        System.out.println("You rolled: " + dice1[m] + " and " + 

        dice2[m] + " a total of " + combo[dice1[m] - 1][dice2[m] - 1] + 

        " times");

    }


慕勒3428872
浏览 140回答 2
2回答

芜湖不芜

您应该将组合计算循环与打印循环分开。如果订单与您所说的不相关,那应该会为您提供您正在寻找的正确输出。快乐编码!

万千封印

自我回答:我将打印循环与组合计算循环分开。如果组合的组合值为 1,那么我只需将其打印出来,说明它已滚动 1 次。如果组合的组合值大于 1,我会在第一次出现时将其打印出来,说明它被掷了很多次,然后将该组合的组合值设置为 0。只有组合值至少为 1 的组合被打印,所以不能打印重复的行(即 1,1 滚动 4 次现在只打印一行而不是 4 个单独的行)。&nbsp; &nbsp; for (int m = 0; m < numRolls; m++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; combo[dice1[m] - 1][dice2[m] - 1]++;&nbsp; &nbsp; }&nbsp; &nbsp; for (int m = 0; m < numRolls; m++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (combo[dice1[m] - 1][dice2[m] - 1] > 1)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("You rolled: " + dice1[m] + " and " + dice2[m] + " a total of " + combo[dice1[m] - 1][dice2[m] - 1]&nbsp; &nbsp;+ " time(s)");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; combo[dice1[m] - 1][dice2[m] - 1] = 0;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; if (combo[dice1[m] - 1][dice2[m] - 1] == 1)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("You rolled: " + dice1[m] + " and " + dice2[m] + " a total of " + combo[dice1[m] - 1][dice2[m] - 1] + " time(s)");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java