我需要编写一个程序,在用户输入行和列时应输出以下内容。以下示例适用于4x4矩阵:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
仍然是初学者并且发现那些阵列真的很难。
它适用于下面的代码,但我不确定是否允许这样填写 - 列和行。
我无法找到合作方式:
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
我使用的代码:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter your array rows: ");
int rows = scanner.nextInt();
System.out.println("Please enter your array columns: ");
int columns = scanner.nextInt();
int[][] array = new int[rows][columns];
int counter = 0;
for (int j = 0; j < columns; j++){
for (int i = 0; i < rows; i++) {
counter++;
array[i][j]=counter;
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
答案 0 :(得分:2)
您想在这里使用的技巧是使用函数来计算给定单元格的值。该函数相对容易....对于每一行,值增加行数。例如,有4行,因此每行中的值增加4 ..... 1, 5, 9, 13, ....
因此,您的代码可以简化为:
for (int r = 0; r < rows; r++) {
for (int c = 0; c < columns; c++) {
System.out.print((r + 1 + (c * rows)) + " ");
}
System.out.println();
}
不需要任何阵列或临时存储等。
重申一下,每个单元格的值是行(从索引1开始,而不是0)加上&#34;偏移&#34;基于列号(从0开始)。
您可以在此处看到它:http://ideone.com/RqPgbN
答案 1 :(得分:1)
按照您的方式填充阵列没有问题,这是完全合法的。首先按行填充它不会产生任何真正的区别。
如果您真的希望以行为首,以下是一种方式:
int[][] array = new int[rows][columns];
for(int i = 0; i < rows, i++) {
for(int j = 0; j < columns; j++) {
array[i][j] = j * rows + i + 1;
}
}
答案 2 :(得分:-2)
试试这段代码: -
int counter = 0;
for (int j = 0; j < rows; j++){
for (int i = 0; i < columns; i++) {
int temp = scanner.nextInt();
array[i][j]=temp;
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
System.out.print(array[i][j] + "\t");
}
System.out.println();
}