0

この問題について助けが必要です。私は、10 の株価を比較し、そのプログラムを使用して 1 日で最大の値上がりを見つけるプログラムを作成することになっています。プログラムは for ループ/if else および main メソッドのみを使用できます。スキャナを使用して株価の int を取得しています。コードを実行するたびに、取得するのはスキャナーに入力した最後の値だけです。助けてください。以下のコード。

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));
 }
}
4

1 に答える 1

0

問題は ; にあります。行内 if (increase < (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));
     }
    }
于 2013-11-04T04:43:54.427 に答える