n×n 整数数组
n-by-n integer array
问题陈述:
我想编写一个程序,从标准输入中读取一个正整数 n 并创建一个 n×n 整数数组 a[][]
使得 a[i][j]
是 (i+第 1) 行第 (j+1) 列。
当前代码:
Scanner input = new Scanner(System.in);
String inputString;
char flag = 'y';
while (flag != 'q' && flag != 'Q') {
System.out.print("Enter a positive integer:");
int value = input.nextInt();
System.out.printf("Enter q to quit or any other key to quit: ");
input.nextLine();
inputString = input.nextLine();
flag = inputString.charAt(0);
}
例如
如果用户输入 3,则矩阵需要为 3x3,并且具有 1 乘以 1、1 乘以 2 和 1 乘以 3 的乘积。然后对 2 和 3 执行相同的操作。
您的问题的算法描述应如下所示:
第一步:用户输入一个正整数n
第 2 步: 创建一个 n x n 矩阵
第三步:对于每个元素(i,j),矩阵在(i,j)处的值为(i+1)*(j+1)
实施:
public class Snippet {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a positive integer:");
int n = input.nextInt();
int[][] a = new int[n][n];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
for (int[] is : a) {
System.out.println(Arrays.toString(is));
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String inputString;
char flag = 'y';
int matrix[][];
while (flag != 'q' && flag != 'Q') {
System.out.print("Enter a positive integer:");
int value = input.nextInt();
System.out.printf("Enter q to quit or any other key to quit: ");
if(value > 0){
matrix = new int[value][value];
displayOutput(matrix);
}
input.nextLine();
inputString = input.nextLine();
flag = inputString.charAt(0);
}
}
private static void displayOutput(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
matrix[i][0] = i+1;
}
for (int j = 1; j < matrix.length; j++) {
for (int i = 0; i < matrix.length; i++) {
matrix[i][j] = matrix[i][0]*(j+1);
}
}
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
System.out.print(" "+matrix[i][j]);
}
System.out.println("");
}
}
Input: 3
Outputs: 1 2 3
2 4 6
3 6 9
问题陈述:
我想编写一个程序,从标准输入中读取一个正整数 n 并创建一个 n×n 整数数组 a[][]
使得 a[i][j]
是 (i+第 1) 行第 (j+1) 列。
当前代码:
Scanner input = new Scanner(System.in);
String inputString;
char flag = 'y';
while (flag != 'q' && flag != 'Q') {
System.out.print("Enter a positive integer:");
int value = input.nextInt();
System.out.printf("Enter q to quit or any other key to quit: ");
input.nextLine();
inputString = input.nextLine();
flag = inputString.charAt(0);
}
例如
如果用户输入 3,则矩阵需要为 3x3,并且具有 1 乘以 1、1 乘以 2 和 1 乘以 3 的乘积。然后对 2 和 3 执行相同的操作。
您的问题的算法描述应如下所示:
第一步:用户输入一个正整数n
第 2 步: 创建一个 n x n 矩阵
第三步:对于每个元素(i,j),矩阵在(i,j)处的值为(i+1)*(j+1)
实施:
public class Snippet {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a positive integer:");
int n = input.nextInt();
int[][] a = new int[n][n];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
for (int[] is : a) {
System.out.println(Arrays.toString(is));
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String inputString;
char flag = 'y';
int matrix[][];
while (flag != 'q' && flag != 'Q') {
System.out.print("Enter a positive integer:");
int value = input.nextInt();
System.out.printf("Enter q to quit or any other key to quit: ");
if(value > 0){
matrix = new int[value][value];
displayOutput(matrix);
}
input.nextLine();
inputString = input.nextLine();
flag = inputString.charAt(0);
}
}
private static void displayOutput(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
matrix[i][0] = i+1;
}
for (int j = 1; j < matrix.length; j++) {
for (int i = 0; i < matrix.length; i++) {
matrix[i][j] = matrix[i][0]*(j+1);
}
}
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
System.out.print(" "+matrix[i][j]);
}
System.out.println("");
}
}
Input: 3
Outputs: 1 2 3
2 4 6
3 6 9