0

程序的输入包含 n 个双精度数。我希望每个双重存储为:a(n), where n = n++

像这样:

input 6,57  4,56 1,23

应存储为:

a(0) = 6,57
a(1) = 4,56
a(2) = 1,23
etc.

这是我试图做的:

double a;
int n = 0;

scanner = new Scanner(System.in);
a(n) = scanner.nextDouble();

while (scanner.hasNextDouble()) {
  a(n) = scanner.nextDouble();
  n++;
  break;
}

这行不通,有什么想法吗?提前致谢。

4

2 回答 2

0

您将需要使用数组。数组是固定大小的,因此您必须提前知道元素的数量。

double[] a=new double[size]使用您size想要的数组大小创建数组。

您现在可以使用 设置数组的值a[n]=scanner.nextDouble();。请记住,n将从0size-1。您也可以通过这种方式读出值,例如 `System.out.println(n[2]);

于 2013-09-21T13:49:05.837 回答
0
  1. 你不知道大小提前,所以我建议使用List<Double>而不是数组。
  2. 您有本地格式的数字(由 分隔,),因此使用NumberFormat类来获取 java 格式。
  3. 数字用空格分隔并存储在您输入的一行中,因此请使用next()方法。
    试试这个代码。

    List<Double> a = new ArrayList<Double>();
    scanner = new Scanner(System.in);        
    while (scanner.hasNext()) {
       String number  = scanner.next();
       NumberFormat numberFormat = NumberFormat.getInstance();
       a.add(numberFormat.parse(number).doubleValue());
    }
    
于 2013-09-21T14:08:04.767 回答