【问题标题】:Java Method(DiceProblem) [closed]Java方法(DiceProblem)[关闭]
【发布时间】:2021-01-22 00:56:49
【问题描述】:

好吧,接下来的程序在运行时会让我“掷一对骰子”n 次(即 生成一个介于 1 和 6 之间的数字),其中 n 是输入的正整数。这 然后程序输出这对数字(“掷骰子”),以及数字的总和 (每对骰子)。数字对存储在二维数组中,总和 每对存储在一个单维数组中。

import java.util.Scanner;
import java.util.Random;

public class diceProblem{
public static void main(String[] args){
    Scanner input = new Scanner(System.in); 
    
    System.out.print("Enter the amount of times a pair of dice will roll: ");
    int times = input.nextInt(); 
    
    int[][]dicePairs = rollDicePairs(times);
    System.out.println("The rolled pairs of numbers are: ");
    printDicePairs(dicePairs);
    
    int[][]dicePairsSums = addDicePairs(dicePairs);
    System.out.println("The sum of each pairs of numbers are: ");
    printDicePairsSums(dicePairsSums);
}

public static int[][]rollDicePairs(int times){ 
    int[][]dice = new int[times][2];
    Random die = new Random();
    
    for(int x=0;x<times;x++){
        for(int y=0;y<2;y++){
            dice[x][y] = 1+die.nextInt(6);
        }
    }
    return dice;
}

public static void printDicePairs(int[][]dicePairs){
    for(int[]pair: dicePairs){
        for(int roll: pair){
            System.out.print(roll+" ");
        }
        System.out.println("");
    }
}

public static int[][]addDicePairs(){
    int[]pairSums = new int[dicePairs];
    for(int x=0;x<pairSums.length;x++){
        int sum = 0;
        for(int y=0;y<dicePairs[x].length;y++){
            sum += dicePairs[x][y];
        }
        pairSums[x] = sum;
    }
    return pairSums;
}

public static void printDicePairsSum(int[]dicePairsSums){
    for(int sum: dicePairsSums){
        System.out.print(sum+" ");
    }
}
}

问题是这个程序有太多错误,它没有运行或输出成对的数字和和

【问题讨论】:

    标签: java arrays methods overloading


    【解决方案1】:

    您的代码无法编译。下面是可以编译的更正代码,并且在您运行它时也会产生正确的结果。将其与您的代码进行比较以发现差异。

    import java.util.Random;
    import java.util.Scanner;
    
    public class DiceProb {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
    
            System.out.print("Enter the amount of times a pair of dice will roll: ");
            int times = input.nextInt();
    
            int[][] dicePairs = rollDicePairs(times);
            System.out.println("The rolled pairs of numbers are: ");
            printDicePairs(dicePairs);
    
            int[] dicePairsSums = addDicePairs(dicePairs);
            System.out.println("The sum of each pairs of numbers are: ");
            printDicePairsSum(dicePairsSums);
        }
    
        public static int[][] rollDicePairs(int times) {
            int[][] dice = new int[times][2];
            Random die = new Random();
    
            for (int x = 0; x < times; x++) {
                for (int y = 0; y < 2; y++) {
                    dice[x][y] = 1 + die.nextInt(6);
                }
            }
            return dice;
        }
    
        public static void printDicePairs(int[][] dicePairs) {
            for (int[] pair : dicePairs) {
                for (int roll : pair) {
                    System.out.print(roll + " ");
                }
                System.out.println("");
            }
        }
    
        public static int[] addDicePairs(int[][] dicePairs) {
            int[] pairSums = new int[dicePairs.length];
            for (int x = 0; x < pairSums.length; x++) {
                int sum = 0;
                for (int y = 0; y < dicePairs[x].length; y++) {
                    sum += dicePairs[x][y];
                }
                pairSums[x] = sum;
            }
            return pairSums;
        }
    
        public static void printDicePairsSum(int[] dicePairsSums) {
            for (int sum : dicePairsSums) {
                System.out.print(sum + " ");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2012-07-18
      • 2013-03-29
      相关资源
      最近更新 更多