gpt4 book ai didi

java - 如何用随机整数 [1,9] 填充二维数组并打印出一个二维数组,其中每行的行总和和每列的列总和?

转载 作者:行者123 更新时间:2023-11-30 07:51:24 25 4
gpt4 key购买 nike

下面的代码是我到目前为止的代码,没有任何效果。我打算在主体中声明一个 7×10 的二维数组。将该数组传递给用随机整数 [1,9] 填充数组的方法。将填充的数组传递给一个方法,该方法打印二维数组,其中每行末尾的行之和和每列末尾的列之和。还必须打印行和列标签。任何帮助将不胜感激。

package twodimensionalarray;

import java.util.Arrays;
import java.util.Random;

/**
*
* @author Kristy7
*/
public class TwoDimensionalArray {

//This method is for generating random integers between 1 and 9.
public static int randInt(){
Random rand = new Random();
int randNum;
randNum = rand.nextInt(9)+1;
return randNum;

}

//This method is for filling a 2D array with random integers
public static int[][] fillArray(int[][] toFill){
int[][] toReturn = new int[0][0];

for(int r = 0; r < toFill.length; r++){
for(int c = 0; c < toFill[0].length; c++){
toReturn[toFill[r]][toFill[c]] = randInt(toFill);
}

}

return toReturn;
}

//This method is for for summing rows and columns, and printing rows, columns, the sum of ruws at each row, and the sum of columns at each column.
public static void summingRC(int[][] toSum){
int[] colSums = new int[0];
for(int i = 0; i < toSum.length; i++){
System.out.print(i);
}
System.out.println();
int sum = 0;
for (int r = 0; r < toSum.length; r++) {

for (int c = 0; c < toSum[r].length; c++) {
sum += toSum[c][r];
colSums[c] += toSum[r][c];
}

System.out.println(sum);
}
System.out.println(colSums);


}

/**
* @param args the command line arguments
*
*/

public static void main(String[] args) {

//Declare a 7x10 2D array
int [][] twoDArray = new int[7][10];

//call fillArray method.
int[][] fillingArray = fillArray(twoDArray);

//call SummingRC method
summingRC(fillingArray);

}

}

最佳答案

如您所知,此代码存在很多问题。其中大部分源于错误地实例化和访问数组。我修复了它:

public static int randInt(){
Random rand = new Random();
int randNum;
randNum = rand.nextInt(9)+1;
return randNum;

}

//This method is for filling a 2D array with random integers
public static int[][] fillArray(int[][] toFill){
int[][] toReturn = new int[toFill.length][toFill[0].length];

for(int r = 0; r < toFill.length; r++){
for(int c = 0; c < toFill[0].length; c++){
toReturn[r][c] = randInt();
}
}
return toReturn;
}

//This method is for for summing rows and columns, and printing rows, columns, the sum of ruws at each row, and the sum of columns at each column.
public static void summingRC(int[][] toSum){
int[] colSum = new int[toSum[0].length];
int[] rowSum = new int[toSum.length];
for(int i = 0; i < toSum.length; i++){
for(int j = 0; j < toSum[i].length; j++){
colSum[j] += toSum[i][j];
rowSum[i] += toSum[i][j];
}
}
System.out.println("Matrix: ");
print2dArray(toSum);
System.out.println("Col sum:");
printArray(colSum);
System.out.println("Row sum:");
printArray(rowSum);

}

/**
* @param args the command line arguments
*
*/

public static void main(String[] args) {

//Declare a 7x10 2D array
int [][] twoDArray = new int[7][10];

//call fillArray method.
int[][] fillingArray = fillArray(twoDArray);

//call SummingRC method
summingRC(fillingArray);

}

public static void print2dArray(int[][] arr){
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}

public static void printArray(int arr[]){
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}

有很多地方可以实例化一个长度为 0 的数组。这基本上只是一个无用的数组,因为你不能将任何值放入其中。例如:

int[] colSums = new int[0];

关于java - 如何用随机整数 [1,9] 填充二维数组并打印出一个二维数组,其中每行的行总和和每列的列总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com