2016-10-24 4 views
-1

私のプログラムには少し問題があります。私は、ユーザーが必要な数だけ入力するようにユーザーに依頼する必要があります。そして、プログラムは最小と最大の番号を教えます。私の問題は、すべてが言われ、「最大の数字が0で、最小の数字が0」という文字が印刷されたときです。いつも私が0を入力しなくても、私は何がプログラムに間違っているのだろうと思っていた。どんなポインタやヘルパーも素晴らしいでしょう。再び繰り返すと、問題は、最小で最大のものが何であれ0に戻るということです。Java Largest and smallest

import java.util.Scanner; 
public class LargestAndSmallest { 

    public static void main(String[] args) { 
     int smallest = 0; 
     int large = 0; 
     int num; 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Enter the numer"); 
     int n = keyboard.nextInt(); 
     num = keyboard.nextInt(); 
     while (n != -99) { 
      System.out.println("Enter more numbers, or -99 to quit"); 
      n = keyboard.nextInt(); 
     } 

     for (int i = 2; i < n; i++) { 
      num = keyboard.nextInt(); 

      if (num > large) { 
       large = num; 
       System.out.println(large); 
      } 

      if (num < smallest) { 
       smallest = num; 
      } 
     } 
     System.out.println("the largest is " + large); 
     System.out.println("the smallest is " + smallest); 
    } 
} 

私は、最初の場所のようにこのコードを使用:Java program to find the largest & smallest number in n numbers without using arrays

+0

は、ユーザからの番号にあなたはまだ0をもたらし入力 –

+0

@RAZ_Muh_Tazを求める二回毎回読んでいません最大と最小のものとして。他の考え? –

+1

@OrangeDogええ、私はURLをリンクしていることを知っています、私の質問は、なぜ私に0を与えると、最大と最小。 –

答えて

-1
import java.util.Collections; 
import java.util.HashSet; 
import java.util.Scanner; 
import java.util.Set; 

public class LargestAndSmallest { 

    public static void main(String... args) { 
    final Scanner keyboard = new Scanner(System.in); //init the scanner 
    System.out.println("Enter a number"); 
    final Set<Integer> ints = new HashSet<>(); //init a set to hold user input 
    int n; //declare a variable to hold each number 
    while ((n = keyboard.nextInt()) != -99) { //loop until 99 is entered 
     ints.add(n); //add user input to our set 
     System.out.println("Enter more numbers, or -99 to quit."); 
    } 
    //output aggregate info 
    System.out.println("the largest is " + Collections.max(ints)); 
    System.out.println("the smallest is " + Collections.min(ints)); 
    } 
} 
+1

これは間違いありませんが、おそらく説明を追加しますか?説明のないコード・ダンプは、ユーザーがこれがなぜ機能するのかわからなくても実装できるので、より良い害を及ぼす可能性があります。 – basic

+0

パブリッククラスを独自のファイルで定義する必要がありますか? –

+0

良い点。私は行ごとのコメントを追加しました。私はコードがかなり自己証明しているとは思うが – Andreas