Mehrerer Zahlen einlesen ?

anfänger17

Mitglied
Hallo ich habe mal wieder ein Problem ;D


Im Zusammenhang mit diesem Erntedankfest, werden Sie beauftragt, ein Programm zu schreiben, welches die notwendigen Daten der einzelnen Teilnehmer aufnimmt und anhand dieser den Gewinner ermittelt. Weiterhin sollen die Kürbisse nach dem Erntedankfest gemeinsam abtransportiert werden. Die zur Verfügung stehenden Laster können maximal mit einer Tonne Gesamtgewicht belastet werden. Sie werden deshalb zusätzlichh mit der Aufgabe betraut, dass Ihr Programm das Gesamtgewicht aller Kürbisse ermittelt und
dann ausgibt, wie viele Laster zum Abtransport notwendig sind.

Implementieren Sie zur Erfüllung dieser Aufgabe Ihr Programm folgendermaßen:

  1. Lesen Sie nacheinander das Gewicht (in kg) und den Durchmesser ( in m) der einzelnen Küurbisse ein, welche an der Preisverleihung teilnehmen sollen.

  2. Nachdem das Gewicht des letzten Küurbisses eingegeben wurde, wird nach Eingabe einer 0 (als Gewicht) das Einlesen beendet.

  3. Entnehmen Sie das Format der Ausgabe dem folgenden Beispiel und geben Sie den größten Durchmesser und die Anzahl der Laster aus.
Beispiel:

Eingabe:
452
2,5
535
3,6
821
4,7
697
4,0
0





Wie schaffe ich es mehrerer Zahlen so einzulesen, das ich sie gespeichert werden ?
 

anfänger17

Mitglied
Gut ich habe das so versucht
Code:
    import java.util.Scanner;
       
        class Kuerbis {
            public static void main(String [] args) {
                Scanner input = new Scanner(System.in);
                int x = 0;
                int q = 0 ;
                double y = 0;
                double z = 0;
              
              while(x!=0) {
              x = input.nextInt() ;
              y = input.nextDouble();
              q = q+x;
                if (y>z){
              z=y;
              }
              }
          
           System.out.println("groesster Durchmesser: "+z);
          
            }
         
          }
Bekomme als Durchmesser aber 0.0 raus warum
 

Robat

Top Contributor
Du bekommst schon einen Output .. du musst nur nach der 0 noch eine Zahl eingeben damit die Schleife beendet wird
 

anfänger17

Mitglied
Ok also weise ich x ne Random Zahl zu
Das habe ich so gemacht
Code:
    import java.util.Scanner;
      
        class Kuerbis {
            public static void main(String [] args) {
                Scanner input = new Scanner(System.in);
                int x = 1;
                int q = 0 ;
                double y = 0;
                double z = 0;
            
              while(x!=0) {
                x = input.nextInt() ;
                y = input.nextDouble();
                q = q+x;
                    if (y>z){
                        z=y;
                        }
                        if(x==0){
                        x=2;
                    }
        
           System.out.println("groesster Durchmesser: "+z);
        
            }
        
          }
        }



Bekomme aber diesen Output :

Output
groesster·Durchmesser:·2.5
Er hat also nur die Erste zahl eingelesen :C
 

Meniskusschaden

Top Contributor
Bekomme aber diesen Output :

Output
groesster·Durchmesser:·2.5
Er hat also nur die Erste zahl eingelesen :C
Ob das falsch ist, hängt ja von deiner Eingabe ab. Wahrscheinlich wartet dein Programm noch immer darauf, dass du die nächste Eingabe machst. Im Moment gibst du das Ergebnis nach jedem erfassten Kürbis aus und nicht erst am Ende. Außerdem solltest du den Quelltext korrekt einrücken, damit man auch sieht, welche Klammern zusammen gehören.
 

anfänger17

Mitglied
Habe das ganze nochmal neu mit einer Schleife gemacht
Ist für mich übersichtlicher ;D



Code:
import java.util.Scanner;
class Kuerbis {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

      
    double gewicht = 1;
    double gesamtg = 0;
    double laster = 1;
    double Durchmesser = 1;
    double max = 0;

      
        while ((gewicht = input.nextInt()) != 0) {
            gesamtg = gesamtg + gewicht;
          
           
            Durchmesser = input.nextDouble();
           

                if(Durchmesser > max){
                max = Durchmesser;
                    }
             }
               
                 laster=gesamtg/1000;
               
               
                System.out.println("groesster Durchmesser: " + max);
                System.out.print("Anzahl der Laster: ");
                System.out.println(Math.ceil(laster));

            }
        }
 

Neue Themen


Oben