带有double和int的多维数组

时间:2015-04-11 11:58:03

标签: java multidimensional-array

这是我到目前为止所得到的

public static void main(String[] args)  {

  int[]aryNumbers = new int[20];

  double[]aryNumbers2 = new double [2];

  aryNumbers[0] = 10;
  aryNumbers[1] = 20;
  aryNumbers[2] = 30;
  aryNumbers[3] = 40;
  aryNumbers[4] = 50;

  aryNumbers2[2] = 6.2;
  aryNumbers2[2] = 6.3;
  aryNumbers2[2] = 6.4;
  aryNumbers2[2] = 6.5;
  aryNumbers2[2] = 6.6;

  int rows = 20;
  double columns = 2;
  int i;
  double j;


  for (i=0; i < rows ; i++) {

      for(j=0; j < columns ; j++) {
          System.out.print( aryNumbers[i] + " " );
          System.out.print( aryNumbers2[j] + " " ); 

      }
      System.out.println( "" );

  }

该程序应该像这样列出

KM = Miles 10 6.2 15 9.3 20 12.4

显示距离100公里的英里数Km。 非常感谢任何帮助被困在这几个小时。

2 个答案:

答案 0 :(得分:1)

此代码生成您的预期输出:

package stackoverflowtmp;

public class StackoverflowTmp {
    public static void main(String[] args) {
        int[] kilometers = new int[3];
        double[] miles = new double[3];

        kilometers[0] = 10;
        kilometers[1] = 15;
        kilometers[2] = 20;

        miles[0] = 6.2;
        miles[1] = 9.3;
        miles[2] = 12.4;

        System.out.print("KM = Miles ");
        for (int i=0; i < kilometers.length; i++) {
            System.out.print(kilometers[i] + " ");
            System.out.print(miles[i] + " "); 
        }
    }
}

输出:
KM = Miles 10 6.2 15 9.3 20 12.4


但是,我建议您根据km = 1.609344*miles或反之亦然miles = 0.621371192*km创建一个函数来计算给定公里数的里程数,而不是使用预定义值。

示例代码:

package stackoverflowtmp;

public class StackoverflowTmp {
    public static void main(String[] args) {
        System.out.print("KM => Miles: ");
        for (int i = 0; i < 50; i += 10) {
            System.out.print(i + " => " + kmToMiles((double)i) + ", ");
        }
    }

    public static double kmToMiles(double km) {
        return km * 0.621371192;
    }
}

输出:
KM => Miles: 0 => 0.0, 10 => 6.21371192, 20 => 12.42742384, 30 => 18.64113576, 40 => 24.85484768,

答案 1 :(得分:0)

首先,你的代码中没有多维数组。

你可以使用的只是一个叫做里程的单个数组。您在此数组中插入里程值,并将其与数组的索引进行比较。确保您了解数组中包含的元素与其索引值之间的差异。

作为例子,如果您使用公式进行公里到英里的转换; mi = km * 0.62137您可以轻松填充数组,获得所需内容。

以下代码应实现此目的:

public static void main(String[] args)  {

    double[] miles = new double[101];

    for (int i = 0; i < miles.length ; i++) {
        miles[i] = i * 0.62137;

        System.out.println(i + " km = " + miles[i] + " miles");
    }
}

请注意,我对数组使用double原语,因为使用浮点比使用松散精度的整数要精确得多。但是如果要在逗号之前舍入,请将数组声明更改为int []。

注意2:您声明一个数组,数字101表示您要创建的索引数(数组的长度)。然后,您可以循环miles.length以填补这些空白点。

修改

如果您只需要逗号之后的一个数字来表示里程值,请在for循环中使用此行:miles[i] = Math.floor((i * 0.62137) * 10) / 10;

并会给你输出:

0 km = 0.0 miles
1 km = 0.6 miles
2 km = 1.2 miles
3 km = 1.8 miles
4 km = 2.4 miles
5 km = 3.1 miles
6 km = 3.7 miles
7 km = 4.3 miles
8 km = 4.9 miles
9 km = 5.5 miles
10 km = 6.2 miles
...

希望这有帮助