当前位置: 首页 > 面试题库 >

如何将一维数组转换为二维数组

仇浩旷
2023-03-14
问题内容

我已经有了用于将一维二维转换为一维二维的代码,但是我不知道如何将其转换。这是我的代码

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]);
  }
}

问题答案:

您正在寻找类似的东西:

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++];
    }
}

但试图帮助进一步解释这个概念。



 类似资料:
  • 问题内容: 我有这种数组 我需要将其转换为一维数组。我怎样才能做到这一点? 例如这样 任何内置函数的php均可用于此数组转换? 问题答案: 对于您有限的用例,可以这样做: 当子数组对此有很多条目时,可以将其更一般化:

  • 问题内容: 我想通过指定2D数组中的列数将一维数组转换为二维数组。可能会像这样工作: numpy是否具有与我的虚构函数“ vec2matrix”相似的功能?(我知道您可以像2D数组一样索引1D数组,但这不是我拥有的代码中的选项- 我需要进行此转换。) 问题答案: 您要阵列。 其中,根据输入数组的大小推断新维的大小。

  • 问题内容: 我有, 如图所示这里,我们创建一个从原点的二维之一。但是,如何迭代内部,以便可以在 其中 创建 列索引* 和 行索引 而又不 创建新 索引 呢?我希望将其索引打印到二维数组 (2x5) 时看起来像这样: __ * 我认为这里的主要问题是获取 列索引 和 行索引 而没有创建二维 索引 。是不是 问题答案: 如果要以行为主的顺序,给定row ,column 并且伪造(缺乏更好的术语)带有列

  • 在C++中将二维字符数组复制到一维数组字符串中最简单的方法是什么? 大概是这样的: 问候蒂尔曼

  • 本文向大家介绍将二维数组转为一维数组的2种方法,包括了将二维数组转为一维数组的2种方法的使用技巧和注意事项,需要的朋友参考一下 如何将下面的二维数组转为一维数组。 第一种方法: 第二种方法: 以上两种解法print_r($names);后的结果为: 注意:array_column();可以有第三个参数,如 $n = array_column($msg, 'name', 'id'); print_r

  • 问题内容: 我想知道如何将2维数组转换为1维数组。我想出了一些代码,但是它似乎并不起作用。有人可以帮帮我吗?谢谢。 [edit]非常感谢。是否可以将String [] []中的每一行转换为String []中的索引,例如,如果我们转换String [] [](以上代码),那么当我打印出array [0]时,它应该打印哑巴,哑巴,哑巴[编辑] 问题答案: 或一次添加整行: 编辑: 从对我的答案的评论