2017-10-23 1 views
2
import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     System.out.print("Enter number (0 to quit): "); 
     //largest to-do 
     double largest = scan.nextDouble(); 
     double count = 0; 

     while (largest != 0) { 
      double input = scan.nextDouble(); 
      //max 
      if (input > largest) { 
       // not zero 
       // while (input > largest){ 
       // 
       // } 

       largest = input; 
       //counter 
       count = 0; 

      } 
      //counter start 
      if(input==largest){ 
       count++; 
      } 
      if (input == 0) { 
       System.out.println("Largest #: " + largest); 
       System.out.println("Occurance: " + count); 
      } 
     } 
    } 
} 

Dieses Programm funktioniert! aber es ist nicht so komplett Ich denke ... Wie, wenn ein Benutzer versucht,wie der Eingang eine bestimmte Nummer nicht lesen kann

-17 -5 -2 -1 -1 -1 0 

eingeben es gibt:

Max: 0 
Occurrence: 1 

Obwohl: in meinem Kopf will ich es sein:

Max: -1 
Occurrence: 3 

Wie würde ich dies OHNE Verwendung von Arrays tun? Ich weiß es in dem Teil des Codes, den ich über dem Zähler gestartet habe.

Vielen Dank im Voraus.

+0

Also 0 soll der Haltepunkt sein? Warum nicht einen Brief oder ein anderes Zeichen zum Haltepunkt machen? – dimwittedanimal

+1

Wenn Sie die Nullzahl als Ausgang behalten möchten, benötigen Sie eine zusätzliche Überprüfung bei 'input> large' genau wie Sie kommentiert haben:' input! = 0 && input> largest' weil 0 gelesen wird und auch – Al1

+0

verarbeitet wird @dimwittedanimal Ich könnte versuchen, das zu tun, obwohl ich nur sehen wollte, wie Sie eine Zahl in diesem Prozess weglassen können – hellothere

Antwort

0

Warum nicht so etwas?

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter number (0 to quit): "); 

     double largest = 0, nextDouble; 
     int count = 0; 

     while ((nextDouble = scan.nextDouble()) != 0) { 
      if (nextDouble > largest || largest == 0) { 
       largest = nextDouble; 
       count = 1; 
      } 
      else if (nextDouble == largest) count++; 
     } 

     scan.close(); 

     if (count == 0) { 
      System.out.println("No number entered!"); 
      return; 
     } 

     System.out.println("Largest #: " + largest); 
     System.out.println("Occurance: " + count); 

    } 
} 
+0

dang OK, ich habe versucht herauszufinden, warum, wenn Sie (für mein Programm) die höchste negative Zahl mehrmals eingegeben - es zählt es 1 weniger. – hellothere

Verwandte Themen