2017-05-23 2 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]); 
    } 
관련 문제