【发布时间】:2014-11-29 14:31:24
【问题描述】:
我正在自学一些 java,我坚持创建一个二维数组,用随机值对其进行初始化,然后创建数组的转置。
一个示例输出是:
$ java Test1 22 333 44 555 6
Enter the number of rows (1-10): 0
ERROR: number not in specified range (1-10) !
and so on until you enter the correct number of rows and columns.
原始矩阵
1 22 333 44 555 6
转置矩阵
1 333 555` 22 44 6`
^ 应该是最终输出。一些有关代码的帮助将不胜感激!
如果行数或列数超出指定范围,我想编写代码以生成错误消息。如果从命令行读取矩阵元素而不是随机生成它们。
import java.util.Scanner;
public class Test1 {
/** Main method */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of rows (1-10): ");
int rows = input.nextInt();
System.out.print("Enter the number of columns (1-10): ");
int cols = input.nextInt();
// Create originalMatrix as rectangular two dimensional array
int[][] originalMatrix = new int[rows][cols];
// Assign random values to originalMatrix
for (int row = 0; row < originalMatrix.length; row++)
for (int col = 0; col < originalMatrix[row].length; col++) {
originalMatrix[row][col] = (int) (Math.random() * 1000);
}
// Print original matrix
System.out.println("\nOriginal matrix:");
printMatrix(originalMatrix);
// Transpose matrix
int[][] resultMatrix = transposeMatrix(originalMatrix);
// Print transposed matrix
System.out.println("\nTransposed matrix:");
printMatrix(resultMatrix);
}
/** The method for printing the contents of a matrix */
public static void printMatrix(int[][] matrix) {
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
System.out.print(matrix[row][col] + " ");
}
System.out.println();
}
}
/** The method for transposing a matrix */
public static int[][] transposeMatrix(int[][] matrix) {
// Code goes here...
}
}
【问题讨论】:
-
如果您发布您尝试过的代码,您将获得更好的帮助。我们无法判断您是否在输入字符串、验证输入或转置数组元素时遇到问题。
-
我在这里没有看到任何矩阵。请让您的帖子更具可读性。您正在尝试线性显示二维矩阵
-
抱歉,我在第一篇文章中添加了我正在处理的代码。我知道它需要一些修改,但我不确定如何实现它们
-
我不知道为什么它呈线性显示......它不应该
-
您在哪一部分遇到了问题?
标签: java arrays matrix transpose