2017-05-23 50 views
1

我會如何將陣列分成幾個區?例如,我想要求用戶輸入說12個值。然後,將它們分成4個季度並在每個季度添加值。我想如何將所有這些添加,但我堅持如何分組添加它們。 謝謝。如何將數組分組?

import java.util.Scanner; 
import java.util.stream.*; 

public class SalesData { 
    public static void main(String[] args) { 

     Scanner keyboard = new Scanner(System.in); 
     int[] salesData = new int[12]; 

      int monthNumber=1; 
      for (int i = 0; i < 12; i++) { 
       System.out.println("Please enter the data for month "+monthNumber); 
       salesData[i] = keyboard.nextInt(); 
       int newNumber=monthNumber++; 
      } 

      System.out.println("The first quarter total is "); 
      System.out.println("The second quarter total is "); 
      System.out.println("The third quarter total is "); 
      System.out.println("The fourth quarter total is "); 

     double sum = IntStream.of(salesData).sum(); 
      System.out.println("The Annual Sales Total is "+sum); 

     }//end main 
    }` 
+1

創建取作爲參數,陣列,起始索引和結束索引的方法,該方法將返回總和 –

回答

2
String[] quarters = {"first", "second", "third", "fourth"}; 
for (int i = 0; i < 12; i += 3) 
    System.out.printf("The %s quarter total is %d%n", 
      quarters[i/3], 
      Arrays.stream(salesData, i, i + 3).sum()); 
0

你是在正確的軌道上,你已經知道你需要的所有作品。

  1. 你知道如何聲明一個固定大小的數組(12)。
  2. 你知道如何編寫for循環。
  3. 您知道如何使用for循環計數器爲數組建立索引。

所以,如果我想做的第一季度...

int firstQuarter = 0; 
for (int i = 0; i < 3; i++) 
{ 
    firstQuarter = firstQuarter + salesData[i]; 
} 
System.out.println("1st Quarter" + firstQuarter); 

您可以輕鬆地編寫這些塊,每個季度的一個,但我挑戰你找到一個更好的解決方案。祝你好運!

0

您不具體說,但我們假設季度#1是'salesData`中的條目0 - 2;季度#2條目3〜5等

這裏的查找和打印季度總數的一種方法:

int salesData[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 
    int qtotal[] = new int[4]; 
    for (int q = 0; q < 4; ++q) { 
     qtotal[q] = 0; 
     for (int i = 0; i < 3; ++i) { 
      qtotal[q] += salesData[q * 3 + i]; 
     } 
    } 
    for (int q = 0; q < 4; ++q) { 
     System.out.printf("Quarter #%d total: %d\n ", q + 1, qtotal[q]); 
    } 
相關問題