从多维数组读取值的问题
Issue with reading values from Multi-dimensional array
我正在研究一个问题,我需要将用户输入的坐标(以空格分隔)放入多维数组中。我试图将 'x' 和 'y' 值分开并将它们分别存储在单维数组中,比如 x[i] 和 y[i]。
我在这里面临的问题是我无法从数组中读取 'y' 值。当我试图输出包含 y 值的数组时,它只显示 0。请帮助我解决这个问题。请在下面找到我的代码。
(注:N=多维数组的行数,列数固定为2)(Sorry,忘记R了,用于其他用途)
public class Read{
public static void main(String[] args) {
int N = 1, R=1;
double AoN=1;
float d=0 , e=0, s=0, length=0;
Scanner in = new Scanner(System.in);
int[] arr = new int[2];
System.out.println("Enter values of N and R separated by space: ");
for (int i=0;i<arr.length;i++) {
arr[i]=in.nextInt();
if (arr[0]>=1 && arr[0]<=100) {
N=arr[0]; //storing N
}
R=arr[1]; //storing R
}
float[ ][ ] arr1 = new float[N][2];
System.out.println("Enter Coordinates seperated by spaces: ");
for(int i=0; i<N;i++) {
for (int j=0;j<2;j++) {
arr1[i][j]=in.nextFloat();
//System.out.println(arr1[i][j]);
}
}
float[] x = new float[N];
float[] y = new float[2]; // I've given 2 here coz the coordinates are always x and y. please correct me if im wrong.
for(int i=0; i<N;i++) {
x[i] = arr1[i][0];
System.out.println(x[i]);
}
for (int j=0;j<N;j++) {
y[j] = arr1[0][j];
System.out.println(y[j]);
}
输入:
2 1 (N, R)
0 0 (x1, y1)
1 3 (x2, y2)
输出:
0.0 (x1)
1.0 (x2)
0.0 (y1)
0.0 (y2)
包含 'y' 值的数组的输出始终为 0(应为 0 和 3)。请帮助。谢谢。
我认为你这里有一个错误...
for (int j = 0; j < N; j++) {
y[j] = arr1[0][j]; // <<< HERE!!
System.out.println(y[j]);
}
我想你的意思是...
for (int j = 0; j < N; j++) {
y[j] = arr1[j][1];
System.out.println(y[j]);
}
使用您输入的参数,当代码到达 "float[] x =..." 位时,"arr" 的状态是...
arr = [2, 1]
arr1 = [[0.0, 0.0], [1.0, 3.0]]
第二个块始终选择二维数组的第一个元素,该元素对于 "j"
的每个值都有“0”
我正在研究一个问题,我需要将用户输入的坐标(以空格分隔)放入多维数组中。我试图将 'x' 和 'y' 值分开并将它们分别存储在单维数组中,比如 x[i] 和 y[i]。
我在这里面临的问题是我无法从数组中读取 'y' 值。当我试图输出包含 y 值的数组时,它只显示 0。请帮助我解决这个问题。请在下面找到我的代码。
(注:N=多维数组的行数,列数固定为2)(Sorry,忘记R了,用于其他用途)
public class Read{
public static void main(String[] args) {
int N = 1, R=1;
double AoN=1;
float d=0 , e=0, s=0, length=0;
Scanner in = new Scanner(System.in);
int[] arr = new int[2];
System.out.println("Enter values of N and R separated by space: ");
for (int i=0;i<arr.length;i++) {
arr[i]=in.nextInt();
if (arr[0]>=1 && arr[0]<=100) {
N=arr[0]; //storing N
}
R=arr[1]; //storing R
}
float[ ][ ] arr1 = new float[N][2];
System.out.println("Enter Coordinates seperated by spaces: ");
for(int i=0; i<N;i++) {
for (int j=0;j<2;j++) {
arr1[i][j]=in.nextFloat();
//System.out.println(arr1[i][j]);
}
}
float[] x = new float[N];
float[] y = new float[2]; // I've given 2 here coz the coordinates are always x and y. please correct me if im wrong.
for(int i=0; i<N;i++) {
x[i] = arr1[i][0];
System.out.println(x[i]);
}
for (int j=0;j<N;j++) {
y[j] = arr1[0][j];
System.out.println(y[j]);
}
输入:
2 1 (N, R)
0 0 (x1, y1)
1 3 (x2, y2)
输出:
0.0 (x1)
1.0 (x2)
0.0 (y1)
0.0 (y2)
包含 'y' 值的数组的输出始终为 0(应为 0 和 3)。请帮助。谢谢。
我认为你这里有一个错误...
for (int j = 0; j < N; j++) {
y[j] = arr1[0][j]; // <<< HERE!!
System.out.println(y[j]);
}
我想你的意思是...
for (int j = 0; j < N; j++) {
y[j] = arr1[j][1];
System.out.println(y[j]);
}
使用您输入的参数,当代码到达 "float[] x =..." 位时,"arr" 的状态是...
arr = [2, 1]
arr1 = [[0.0, 0.0], [1.0, 3.0]]
第二个块始终选择二维数组的第一个元素,该元素对于 "j"
的每个值都有“0”