2013-11-04 2 views
0

이 문제와 관련하여 도움이 필요합니다. 나는 10 가지 주가를 비교하고 그 프로그램을 사용하는 숫자에서 하루 동안 가장 큰 것을 찾아야하는 프로그램을 만들고있다. 프로그램은 for 루프// else와 main 메소드 만 사용할 수 있습니다. 나는 스캐너를 사용하여 int 값을 얻는다. 매번 코드를 실행하면 스캐너에 넣은 마지막 값을 얻을 수 있습니다. 도와주세요. 아래 코드.Java에서 for 루프의 두 입력을 비교할 때 문제가 발생했습니다.

import java.util.Scanner; 

//48 54 49 47 62 64 59 70 75 82 
class Increase 
{ 
public static void main (String [] args) 
{ 
    Scanner in = new Scanner(System.in); 
    final int Days = 10; 
    int highval = 0; 
    int lowval = 0; 
    int increase = 0; 
    int day = 0; 
    System.out.print("Enter the stock prices for " + Days + " number of days."); 
    int x = in.nextInt(); 

    for (int i = 0; i < Days-1; i++) 
    { 
    int y = in.nextInt(); 
    if (increase < (y - x)); 
    { 
     increase = (y - x); 
     highval = y; 
     lowval = x; 
     day = i; 
    } 
    x = y; 
    }  

    System.out.println("The largest increase is " + increase); 
    System.out.println("from " +lowval + " to " + highval); 
    System.out.println("between days " + day + " and " + (day + 1)); 
} 
} 
+0

스캐너에서 둘 이상의 입력을받는 위치가 표시되지 않습니다. – Andrew

+0

int x = in.nextInt(); for (int i = 0; i <일 -1; i ++) { int y = in.nextInt(); 덕분에 –

답변

0

문제는; 줄에 if (증가 < (y - x)); (빈 할당)

이는 아래 루프가 항상 실행되도록합니다.

{ 
increase = (y - x); 
     highval = y; 
     lowval = x; 
     day = i; 

} 

다음과 같이 수정하십시오.

import java.util.Scanner; 


    class Increase 
    { 
    public static void main (String [] args) 
    { 
     Scanner in = new Scanner(System.in); 
     final int Days = 10; 
     int highval = 0; 
     int lowval = 0; 
     int increase = 0; 
     int day = 0; 
     System.out.print("Enter the stock prices for " + Days + " number of days."); 
     int x = in.nextInt(); 

     for (int i = 0; i < Days-1; i++) 
     { 
     int y = in.nextInt(); 
     if (increase < (y - x)) 
     { 
      increase = (y - x); 
      highval = y; 
      lowval = x; 
      day = i; 
     } 
     x = y; 
     }  

     System.out.println("The largest increase is " + increase); 
     System.out.println("from " +lowval + " to " + highval); 
     System.out.println("between days " + day + " and " + (day + 1)); 
    } 
    } 
+0

! 그것은 일했다! –

관련 문제