亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用帶有來自隨機生成器的值的一維數組編寫程序,以打印出每個組合被一對骰子擲出的次數

使用帶有來自隨機生成器的值的一維數組編寫程序,以打印出每個組合被一對骰子擲出的次數

慕勒3428872 2021-11-24 15:55:30
分配的目標是使用并行的一維數組,但也允許使用二維數組。我可以打印出不同的組合,例如由一對骰子滾動的 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");    }
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您應該將組合計算循環與打印循環分開。如果訂單與您所說的不相關,那應該會為您提供您正在尋找的正確輸出。快樂編碼!


查看完整回答
反對 回復 2021-11-24
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

自我回答:


我將打印循環與組合計算循環分開。如果組合的組合值為 1,那么我只需將其打印出來,說明它已滾動 1 次。如果組合的組合值大于 1,我會在第一次出現時將其打印出來,說明它被擲了很多次,然后將該組合的組合值設置為 0。只有組合值至少為 1 的組合被打印,所以不能打印重復的行(即 1,1 滾動 4 次現在只打印一行而不是 4 個單獨的行)。


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

    {

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

    }


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

    {

        if (combo[dice1[m] - 1][dice2[m] - 1] > 1)

        {

            System.out.println("You rolled: " + dice1[m] + " and " + dice2[m] + " a total of " + combo[dice1[m] - 1][dice2[m] - 1]   + " time(s)");

            combo[dice1[m] - 1][dice2[m] - 1] = 0;

        }


        if (combo[dice1[m] - 1][dice2[m] - 1] == 1)

        {

        System.out.println("You rolled: " + dice1[m] + " and " + dice2[m] + " a total of " + combo[dice1[m] - 1][dice2[m] - 1] + " time(s)");

        }

    }


查看完整回答
反對 回復 2021-11-24
  • 2 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號