Think in java 答案_Chapter 4_Exercise 20

 阅前声明: http://blog.csdn.net/heimaoxiaozi/archive/2007/01/19/1487884.aspx


/****************** Exercise 20 *****************
* Repeat Exercise 19 for a three-dimensional
* array.
***********************************************/

public class E20_ThreeDDoubleArray {
  public static double[][][] threeDDoubleArray(
    int xLen, int yLen, int zLen,
    double valStart, double valEnd){
    double[][][] array =
      new double[xLen][yLen][zLen];
    double increment =
      (valEnd - valStart)/(xLen * yLen * zLen);
    double val = valStart;
    for(int i = 0; i < array.length; i++)
      for(int j = 0; j < array[i].length; j++)
        for(int k = 0; k < array[i][j].length; k++) {
          array[i][j][k] = val;
          val += increment;
        }
    return array;
  }
  public static
  void printArray(double[][][] array) {
    for(int i = 0; i < array.length; i++) {
      for(int j = 0; j < array[i].length; j++) {
        for(int k = 0; k < array[i][j].length; k++)
          System.out.println(" " + array[i][j][k]);
        System.out.println();
      }
      System.out.println();
    }
  }
  public static void main(String args[]) {
    double[][][] threeD =
      threeDDoubleArray(4, 6, 2, 47.0, 99.0);
    printArray(threeD);
    System.out.println("**********************");
    double[][][] threeD2 =
      threeDDoubleArray(2, 2, 5, 47.0, 99.0);
    printArray(threeD2);
    System.out.println("**********************");
    double[][][] threeD3 =
      threeDDoubleArray(9, 5, 7, 47.0, 99.0);
    printArray(threeD3);
  }
}

//+M java E20_ThreeDDoubleArray

**As complex as this might seem, it’s still vastly simpler than doing it in C or C++, and you get array bounds checking built in. In C/C++, if you ran off the end of a mult-dimenstional array, there was a good chance you wouldn’t catch the error.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值