将数组划分为两个不同的数组

时间:2014-04-18 12:03:18

标签: java arrays

我已经制作了2-D数组来存储模式[用户定义]及其功能[用户可以决定每种模式的功能没有]。我必须将这个结构分为两部分TR1和TR2,这样每个模式的一半特征在TR1中,剩下的一半在TR2中。 代码相同

 int n;//No of Patterns
 int f=0;;//No of Features


 System.out.println("Enter No of Patterns:");
 n=Integer.parseInt(input.readLine());

 //2-D array to store Features
 int pattern[][]= new int[n][20];
 int tr1[][]=new int[n][20];//TR1
 int tr2[][]=new int[n][20];//TR2

//No of Features for each Pattern
 for(int i=0;i<n;i++)//NO of Features for each Pattern
 { 
     System.out.println("Enter No of Features for Pattern "+(i+1)+" : ");
     f=Integer.parseInt(input.readLine());
     pattern[i]=new int[f];
     tr1[i]=new int[f/2];//definining size of TR1 
     tr2[i]=new int[f/2];//definining size of TR2
 }

//Features of each pattern
for(int i=0;i<n;i++)
 {
    System.out.println("Enter Features for Pattern "+(i+1)+" : ");
    for(int j=0;j<pattern[i].length;j++)
    {
    pattern[i][j]=Integer.parseInt(input.readLine());

    }
 }
//Split into TR1 & TR2 
for(int i=0;i<n;i++)
 {
    for(int j=0;j<pattern[i].length/2;j++)
    {
    tr1[i][j]=pattern[i][j];
    }   
    int x=0;//Fill TR2 from 0 index
    for(int j=pattern[i].length;j<pattern[i].length;j++)
    {
    tr2[i][x]=pattern[i][j];
            x++;
    }
 }




//Print Features of each pattern
for(int i=0;i<n;i++)
 {

    for(int j=0;j<pattern[i].length;j++)
    {
    System.out.print(" "+pattern[i][j]+" ");
    }
    System.out.println();
 }

 //Print TR1
 for(int i=0;i<n;i++)
 {

    for(int j=0;j<tr1[i].length;j++)
    {
    System.out.print(" "+tr1[i][j]+" ");

    }
    System.out.println();
 }

     //Print TR2
 for(int i=0;i<n;i++)
 {

    for(int j=0;j<tr2[i].length;j++)
    {
    System.out.print(" "+tr2[i][j]+" ");

    }
    System.out.println();
 }

问题是TR2中的所有值在输出中变为0。但是TR1输出是正确的。

1 个答案:

答案 0 :(得分:0)

for循环中,条件j < pattern[i].length为false,因为:

int j = pattern[i].length;

由于条件第一次为假,for循环中的语句根本没有执行。这就是TR2的元素保持未初始化的原因,这就是为什么TR2的元素变为{ {1}}。

0

查看链接,它会有所帮助。 java-how-to-split-a-2d-array-into-two-2d-arrays