這是高中作業(yè)。在我的第一個 for() 循環(huán)中,我根據(jù)用戶輸入構(gòu)建了一個數(shù)組。但是,數(shù)組的第一個值被跳過并設(shè)置為 0.0我已經(jīng)徹底追蹤了代碼,但無濟于事。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("}"); } }}我想將由可變長度確定的指定數(shù)量的值輸入到數(shù)組中,然后按從小到大的順序打印數(shù)組。相反,它會跳過索引[0],并將其設(shè)置為 0.0。
3 回答

烙印99
TA貢獻1829條經(jīng)驗 獲得超13個贊
int finalarraycount = 1;
finalarray[finalarraycount] = array[x];
這就是為什么。您將其初始化為 1,但數(shù)組中的第一個索引為 0。如果為 0,則會影響數(shù)組中的第一個索引。

瀟瀟雨雨
TA貢獻1833條經(jīng)驗 獲得超4個贊
這只是標準編譯器行為。finalarray[0]
沒有被第二個 for 循環(huán)設(shè)置為任何內(nèi)容。因此,Java 將其初始化為 0.0,如下所述: https: //docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5
添加回答
舉報
0/150
提交
取消