2017-05-23 9 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

あなたは具体的に言っていませんが、quarterの#1は 'salesData`のエントリ0〜2と仮定しましょう。四半期#2等、5へのエントリ3である

ここ四半期の合計を見つけて印刷する一つの方法です:

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]); 
    } 
関連する問題