2014-05-19 41 views
-2

到目前爲止,我不知道如何去做。它只添加了範圍的開始和結束,它不添加範圍內的數字,或者我認爲它不是我輸入的範圍,而是添加了x和y之間的數字。在一定範圍內添加數字。怎麼樣?

我想在數組的特定範圍之間添加數字。

int[] range = new int[10]; 

for (int x = 0; x < range.length; x++) { 
    System.out.print("Enter number: "); 
    range[x] = in.nextInt(); 
} 

System.out.println("Enter the numbers for the start and end of the range. "); 
int start = in.nextInt(); 
int end = in.nextInt(); 

start = range[start]; 
end = range[end]; 

for(; start < end; end = end -1) { 
    start =end+ start; 
} 

System.out.println(start); 

對不起,如果問題已經被問到。

+0

想一想 - 你正在加上所有這些數字。你在哪裏儲存它們?您需要另一個變量來存儲所有數字的總和。 –

+0

'start = end + start'。實際上,你正在壓倒開始的價值。您應該使用另一個變量,如sum,並在for循環中增加sum時將其添加到數組的每個索引 – Ashish

回答

3

嘗試做一個不太奇異的循環。像這樣的東西應該這樣做。

int sum = 0; 
for(int i=start; i <= end; i++){ 
    sum = sum + range[i]; 
} 
System.out.println(sum); 
0

很好,第一件事情:

start = range[start]; 
end = range[end]; 

當初始化數組,你讓用戶輸入的數字,和你想的範圍是什麼 - 不是數字,而是指標。可以肯定的是 - 你會忘記一個月你試圖用這個代碼做什麼,所以你必須使它更具可讀性 - 爲結果增加額外的變量(和註釋c)。 所以這就是我如何看到一個代碼,將正常工作:

int start = in.nextInt(); 
int end = in.nextInt(); 
int result=0; 
for(;start <= end; start++){ 
    result += range[start]; 
//any other operations with numbers incide your range 
} 
System.out.println(result);