Problèmes de comparaison entre deux entrées dans for loops en Java


J'ai besoin d'aide avec ce problème. Je suis censé faire un programme où j'ai besoin de comparer les prix des actions 10 et de trouver la plus forte augmentation en une journée dans les chiffres utilisant le programme. Le programme ne peut utiliser que les boucles for / if else et la méthode main. J'utilise scanner pour obtenir les ints pour les cours des actions. Chaque fois que j'exécute le code, tout ce que j'obtiens, ce sont les dernières valeurs que j'ai mises dans le scanner. S'IL VOUS PLAÎT AIDER. Le Code ci-dessous.

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));
 }
}
Author: hichris123, 2013-11-04

1 answers

Le problème est avec le; dans la ligne si (augmenter

Ce qui provoque toujours l'exécution de la boucle ci-dessous.

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

}

Pour corriger le changement comme ci-dessous.

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
Author: Raghu, 2013-11-04 04:52:29