【发布时间】:2014-10-18 15:49:24
【问题描述】:
我的作业详情
题目:一维数组
写一个java程序,先读入一个一维数组的大小,读入每个double类型的数组元素,把这个一维数组的顺序倒过来。 不要创建另一个数组来保存结果。 提示:使用文本中的代码交换两个元素。
样本输出:
请输入数组的大小:4
请输入4个双数:1.0、2.0、3.0、4.0
倒序后:4.0、3.0、2.0、1.0
我的作业有 2 个问题。想知道是否有人可以帮助我找到解决方案。
- 我需要使用
填充数组 (double[] myArray) 的值 扫描仪输入来自单行的多个双打。 - 我需要颠倒数组中值的顺序,而无需 使用第二个数组。
这是我目前的代码。
Scanner sc = new Scanner(System.in);
System.out.println("Please input the size of array: ");
int arraySize = sc.nextInt(); //Stores user input
double[] myArray = new double[arraySize]; //Create array[userInput]
System.out.print("Please input " + arraySize + " double numbers: ");//Collect user input
int j = 0;
while (sc.hasNext()) { //Another Failed Attempt to collect the input from a single line
if (sc.hasNextDouble()) {
myArray[j] = sc.nextDouble(); //Insert user input into array
j++;
}
}
Collections.reverse(Arrays.asList(myArray));//Doesn't work :(
System.out.println("After reverse order: ");
for (int i=0;i<arraySize;i++)
System.out.println(myArray[i]);
我的问题是,当用户给出双打的输入时,控制台移动到下一行仍然期待输入,如果输入是 ArrayIndexOutOfBounds 被抛出
【问题讨论】:
-
你的代码有什么问题?它不会编译/抛出异常/返回错误结果吗?
-
我没有看到您的问题/错误的描述
-
提示:当你反转数组时,第一个元素和最后一个元素会发生什么?你对第二个元素和倒数第二个元素有什么看法?祝你好运!
-
扫描仪 sc2 = new Scanner(System.in);整数 j = 0; while (sc2.hasNext()) { //Another Failed Attempt to collect the input from a single line if (sc2.hasNextDouble()) { myArray[j] = sc2.nextDouble(); //将用户输入插入数组j++; } } Collections.reverse(Arrays.asList(myArray));//不起作用:(
-
对不起,我试图添加第二个扫描仪,我的问题是当用户给出双打的输入时,控制台移动到下一行仍然期待输入,如果输入是 ArrayIndexOutOfBounds 是抛出。