黑马程序员技术交流社区

标题: 二维数组求和 [打印本页]

作者: 韩金蕊    时间: 2012-1-2 22:18
标题: 二维数组求和
本帖最后由 韩金蕊 于 2012-1-3 16:21 编辑

请问怎样实现不规则二维数组的列求和?任意的二维数组都能实现吗?
作者: 李盈科    时间: 2012-1-2 22:50
  1. public static void main(String[] args)
  2.         {
  3.                  int[][] twoD = new int[4][];
  4.              int result = 0;
  5.              twoD[0] = new int[4];
  6.              twoD[1] = new int[5];
  7.              twoD[2] = new int[6];
  8.              twoD[3] = new int[7];
  9.              
  10.              for(int[] row:twoD)
  11.              {
  12.                for(int b:row)
  13.                {
  14.                result+=b;
  15.                }
  16.              }
  17.              System.out.println(result);
  18.         }
复制代码

作者: 詹英鹏    时间: 2012-1-3 00:47
以下是代码:
public class Test10 {
        public static void main(String[] args) {
                int [][]temp=new int[3][];
                temp[0]=new int[]{1};
                temp[1]=new int[]{14,5,1};
                temp[2]=new int[]{0,5,3};
                int max =0;
                for(int i=0;i<temp.length;i++){
                        if(temp[i].length>max){
                                max=temp[i].length; //获得最长的列
                        }
                }
                for(int i=0;i<max;i++){  //根据列的长度循环
                        int sum=0;
                        for(int j=0;j<temp.length;j++){ //最多temp.length行
                                if(temp[j].length>i){  //如果长度当前行列的长度大于标记列的长度
                                        sum+=temp[j][i]; //加
                                }
                        }
                        System.out.println("第"+i+"列的和为:"+sum);
                }
               
        }
}
你问的任意二维数组都能实现么
我觉得一定能,只不过有的二维数组太罗嗦,里面比较复杂
代码多就是了
作者: 赵玮    时间: 2012-1-4 11:29
int [][] temp={......}
能,例如:
int sum=0;
for(int i=0;i<temp.length;i++){
   for(int j=0;j<temp[i].length;j++){
         sum+=temp[i][j] ;
   }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2