在将元素应用于整个数组时,我很难弄清楚如何根据用户输入来增加元素。
问题:编写一个程序来创建一个由用户提供的双精度数组。
用户还将提供数组的第一个值和一个增量值。 您的程序必须使用数组第一个元素的第一个值完全填充数组。 数组的下一个元素将具有等于前一个元素的值加上增量。该程序基本上是在生成算术级数。 填充阵列后,必须将其打印以检查其正确性。 您的程序必须以合理的数组大小,起始值和增量值运行。
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
System.out.println("This program fills an array of doubles using an"
+ " initial value, the array size and an increment value.");
System.out.println("Please enter the desired size of the array: ");
int size = kbd.nextInt();
double[] array1 = new double[size];
System.out.println("Please enter the value of the first element: ");
array1[0] = kbd.nextDouble();
System.out.println("Please enter the increment value: ");
double inc=kbd.nextDouble();
double total =array1[0]+inc;
for (int i =0; i < array1.length;i++)
{
System.out.println(total++);
}
}
到目前为止,我的代码仅添加到第一个元素,但是我不确定如何继续定位每个元素,以便输出看起来像这样:
该程序使用初始值,数组大小和增量值填充双精度数组。
Please enter the desired size of the array:6
Please enter the value of the first element: 0
Please enter the increment value:2
array[0]:0.00
array[1]:2.00
array[2]:4.00
array[3]:6.00
array[4]:8.00
array[5]:10.00
答案 0 :(得分:0)
下面的代码包含两种可以使用的方法。对于一种方法,您可以从索引1遍历数组,并将inc添加到先前的索引值。另一种方法是为每个循环运行使用“总计”变量,将inc的值添加到“总计”变量的值。对于这两种方法,您都应该构建一些东西来检查输入是否为数组长度用户输入零的事件。
import java.util.Scanner;
public class HelloWorld{
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
System.out.println("This program fills an array of doubles using an"
+ " initial value, the array size and an increment value.");
System.out.println("Please enter the desired size of the array: ");
int size = kbd.nextInt();
double[] array1 = new double[size];
System.out.println("Please enter the value of the first element: ");
array1[0] = kbd.nextDouble();
System.out.println("Please enter the increment value: ");
double inc=kbd.nextDouble();
double total=array1[0];
/* remove this line to use method 1 --
System.out.println(array1[0]);
for (int i =1; i < array1.length;i++){
array1[i] = (total = total + inc);
System.out.println(array1[i]);
}
-- remove this line to use method one */
// Method two is below.
System.out.println(array1[0]);
for (int i =1; i < array1.length;i++){
array1[i] = array1[i - 1] + inc;
System.out.println(array1[i]);
}
}
}