这是高中作业。在我的第一个 for() 循环中,我根据用户输入构建了一个数组。但是,数组的第一个值被跳过并设置为 0.0我已经彻底追踪了代码,但无济于事。import java.util.Scanner;import java.lang.Math;public class TestProject { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("How long do you want the array?"); int length = scan.nextInt(); if(Math.abs(length) != length) { System.out.println("Not a valid length!"); } else { double[] array = new double[length]; for(int i = 0; i < length-1; i++) { System.out.println("Enter a number"); array[i] = scan.nextDouble(); } double[] finalarray = new double[array.length]; int finalarraycount = 1; double flag = -1; for(int x = 0; x<(array.length -1); x++) { if(array[x] > flag) { finalarray[finalarraycount] = array[x]; flag = array[x]; finalarraycount++; } } System.out.print("Your array is {"); for(int y = 0; y<finalarray.length; y++) { System.out.print(finalarray[y]); System.out.print(", "); } System.out.println("}"); } }}我想将由可变长度确定的指定数量的值输入到数组中,然后按从小到大的顺序打印数组。相反,它会跳过索引[0],并将其设置为 0.0。
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
int finalarraycount = 1;
finalarray[finalarraycount] = array[x];
这就是为什么。您将其初始化为 1,但数组中的第一个索引为 0。如果为 0,则会影响数组中的第一个索引。
潇潇雨雨
TA贡献1833条经验 获得超4个赞
这只是标准编译器行为。finalarray[0]
没有被第二个 for 循环设置为任何内容。因此,Java 将其初始化为 0.0,如下所述: https: //docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5
添加回答
举报
0/150
提交
取消