我已经有了如何将二维一维转换为维度的代码,但我不知道该怎么做反之亦然。这是我的代码:
package laboratorio9;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int A[][];
int B[];
int n;
int m;
int nb = 0;
System.out.println("Enter the number of lines in your array.");
n = entrada.nextInt();
System.out.println("Enter the number of columns in your array.");
m = entrada.nextInt();
A = new int[m][n];
B = new int[m*n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.println("Enter A["+i+"]["+j+"]");
A[i][j] = entrada.nextInt();
}
}
System.out.println();
for (int i = 0; i < m;i++) {
for (int j = 0; j < n; j++) {
B[nb] = A[i][j];
nb++;
}
}
for (int i = 0; i < m*n; i++) {
System.out.println(B[i] + " ");
}
System.out.println();
Boolean Swap = false;
do {
Swap = false;
for (int i=0;i<B.length-1;i++)
if (B[i] > B[i + 1]) {
int Temp = B[i];
B[i] = B[i + 1];
B[i + 1] = Temp;
Swap = true;
}
} while (Swap);
for (int i=0;i<B.length;i++)
System.out.println(B[i]);
}
}
答案 0 :(得分:2)
int j = 0;
int k = 0;
for ( int i = 0; i < nb;i++)
{
C[j][k] = B[i];
k++;
if( k >= n )
{
j++;
k = 0;
if( j >= m )
throw Error();
}
}
与:
相同int k = 0;
for ( int i = 0; i < m;i++)
{
for ( int j = 0; j < n;j++)
{
C[i][j] = B[k++];
}
}
但试图帮助更多地解释这个概念。