【发布时间】:2016-01-13 17:56:49
【问题描述】:
我目前有一个程序,当向用户询问整数时,它会根据输入生成一个 2d 方阵(即:输入 2 会导致 2x2 网格)。
程序然后用随机数 0-9 填充这个矩阵,然后创建一个新的矩阵,其大小是原来的两倍(2x2 变为 4x4,3x3 变为 6x6,等等)。
但是,我无法正确复制结果。我试图让矩阵以这样的方式复制矩阵,例如:
1 2 3
4 5 6
7 8 9
它会产生一个矩阵:
1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
7 7 8 8 9 9
7 7 8 8 9 9
目前,我只是使用两个 for 循环来生成这个矩阵,但它并没有打印出正确的结果。
public static void main(String[] args) {
System.out.println("Enter the size of the matrix.");
Scanner keyboard = new Scanner(System.in);
Random random = new Random();
int n = keyboard.nextInt();
int[][] matrix = new int[n][n];
for (int x=0;x<n;x++)
{
for (int y=0;y<n;y++)
{
matrix[x][y] = random.nextInt(10);
}
}
System.out.println("The matrix is");
for (int x=0;x<matrix.length;x++)
{
for (int y=0;y<matrix.length;y++)
{
System.out.print(matrix[x][y]+" ");
}
System.out.println("");
}
int nDouble = n * 2;
int c = 1;
int[][] matrixDoubled = new int[nDouble][nDouble];
for (int y=0;y<matrix.length;y++)
{
for (int x=0;x<matrix.length;x++)
{
matrixDoubled[x][y] = matrix[x][y];
matrixDoubled[x+c][y] = matrix[x][y];
matrixDoubled[x][y+c] = matrix[x][y];
matrixDoubled[x+c][y+c] = matrix[x][y];
c = c + 1;
}
c = 1;
}
System.out.println("The doubled matrix is");
for (int x=0;x<matrixDoubled.length;x++)
{
for (int y=0;y<matrixDoubled.length;y++)
{
System.out.print(matrixDoubled[x][y]+" ");
}
System.out.println("");
}
}
}
【问题讨论】:
-
Drew,这看起来像是一个家庭作业,这并不是 StackOverflow 中的人们想要回答的那种问题。人们可能会理解您很懒惰并要求他们为您工作以获得stackoverflow积分。此外,如果这是真的,那么你对你的老师和你自己都是不道德的。
标签: java loops for-loop matrix 2d