有两个二维数组R[][]和T[][]进行并操作后结果放在T[][]中,但是当R[][]中输入1行3列  S[][]中输入N行3列时,打???????的那行老是报错   不知道怎么回事啊   求救啊
void u(String r[][],String s[][],String t[][])throws IOException
{
int f[]=new int[s.length-1];
//并操作
for(int i=0;i<r.length;i++)
for(int j=0;j<r[i].length;j++)
t[i][j]=r[i][j];

for(int i=1;i<s.length;i++)//控制s[][]数组的行数
{
for(int j=1;j<r.length;j++)//控制r[][]数组的行数
{
for(int k=0;k<r[i].length;k++)//控制两数组的列数??????????????????????????
{                                                                         
if(s[i][k].equals(r[j][k])==false){flag++;break;}
}
}
if(flag==r[i].length-1){f[a]=i;a++;}
flag=0;
}
b=0;
for(int i=r.length;i<r.length+a;i++)
{
for(int j=0;j<s[0].length;j++)
{
c=f[b];
t[i][j]=s[c][j];
}
b++;
}
//输出并后结果
System.out.println("并操作后的结果:");
for(int i=0;i<r.length+a;i++)
{
for(int j=0;j<t[i].length;j++)
System.out.print("\t"+t[i][j]);
System.out.println();
}
}

解决方案 »

  1.   

    眼花,就不能用CSDN贴代码的工具吗?
      

  2.   

    你这代码命名很有问题,这代码没有人耐心的
    代码有问题,flag、a、b这两个你都没有声明,你是类全局变量的话,也应该给出初始化值,光看你这代码,无法查的原因
      

  3.   

    粗略看了下 r[i].length 打错了了吧 应该是r[j].length
      

  4.   


    我改了一下,又出现问题了
    两个二维数组R[][]和T[][]进行并操作后结果放在T[][]中,但是当R[][]中输入1行3列 S[][]中输入N行3列或者是R[][]中输入N行3列 S[][]中输入1行3列时,不能完成并运算,为什么啊?
    void u(String r[][],String s[][],String t[][])throws IOException 

          int f[]=new int[s.length-1]; 
          //并操作 
              for(int i=0;i <r.length;i++) 
                    for(int j=0;j <r[i].length;j++) 
                            t[i][j]=r[i][j];          for(int i=1;i <s.length;i++)//控制s[][]数组的行数 
               { 
                    for(int j=1;j <r.length;j++)//控制r[][]数组的行数 
                       { 
                         for(int k=0;k <r[i].length;k++)
                            {                                                                          
                                if(s[i][k].equals(r[j][k])==false){flag++;break;} 
                         } 
                     } 
                     if(flag==r[i].length-1){f[a]=i;a++;} 
                     flag=0; 
              } 
              b=0; 
             for(int i=r.length;i <r.length+a;i++) 
             { 
                  for(int j=0;j <s[0].length;j++) 
                    { 
                          c=f[b]; 
                          t[i][j]=s[c][j]; 
                    } 
                    b++; 
              } 
           //输出并后结果 
            System.out.println("并操作后的结果:"); 
            for(int i=0;i <r.length+a;i++) 
              { 
                   for(int j=0;j <t[i].length;j++) 
                   System.out.print("\t"+t[i][j]); 
                   System.out.println(); 
               } 
    }