程序的输入包含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;
}
这不行, 有任何想法吗? 提前谢谢。
答案 0 :(得分:0)
您需要使用数组。数组是固定大小的,因此您必须事先知道元素的数量。
使用double[] a=new double[size]
创建数组,其中size
是您想要的数组大小。
现在可以使用a[n]=scanner.nextDouble();
设置数组的值。请注意,n
将从0
转到size-1
。您也可以通过这种方式读出值,例如`System.out.println(n [2]);
答案 1 :(得分:0)
List<Double>
而不是数组。 ,
分隔),因此请使用NumberFormat
类来获取java格式。数字用空格分隔,并存储在输入的一行中,因此请使用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());
}