Größte und 2. Größte zahl Addieren

T

tanye

Gast
Hi ,

Habn Programm geschrieben , dass ganze , positive Zahlen addiert , und abgesehen davon die 2 größten Zahlen addieren soll ... beim 2. ist das Problem dass er leider immer nur die größte Zahl 2mal addiert statt der größten und der 2.größten ... Jmd ne Idee was ich machen kann ?

Java:
import javax.swing.*;


public class maximum {

	public static void main (String args[]){
			
int n=0;
int sum=0;
int max=0;

	do {
	
	sum=sum+n;
	max=Math.max(n,n);
	
	String s=JOptionPane.showInputDialog("Bitte Zahl eingeben : " );
	
	n=Integer.parseInt(s);
	
	
	}while(n>=0);
	
	System.out.println("Die Summe der ganzen positiven Zahlen ist : ");
System.out.println(sum);
    System.out.println("Die Summe der beiden größten   Zahlen ist : ");
System.out.println(max);
	
	}	
	
	
}
 
T

tanye

Gast
Wieso nur eine Zahl ? Hab dochn Dialog Popup der erst abbricht wenn eine negative Zahl eingegeben wird ... sagen wir ich geb 5,4,2,2,4,5,10 ein ... dann soll er 5und10 addieren
 

XHelp

Top Contributor
Aber du speicherst doch nur eine Zahl!
Ich kann mich erinnern dir im anderen Thread geschrieben zu haben "speichere es in einer Liste, wenn du später noch Berechnungen damit anstellen willst", aber....
Hast du dir schon von mir verlinkten Thread angeguckt?
 
T

tanye

Gast
Doch ich habs nicht vergessen , "Java ist auch eine Insel" hatteste mir geschickt ...
Ist mein 2.Programm ohne Vorerfahrung gehabt zu haben bin leicht überfordert , ich les mirs grad nochma durch und versuchs zu checken ^^
 

timbeau

Gesperrter Benutzer
Du hast 10 Papierschnipsel die auf der nicht sichtbaren Seite Zahlen haben. Wie löst du das als Mensch und wie kann man das übertragen?
 
T

tanye

Gast
Der Reihenfolge nach die Papierschippsel durchgehen und das bis dahin größte rausnehmen ... ???:L
 

Andi_CH

Top Contributor
Nimm ein Neues Schnipsel auf.
Wenn das Neue grösser als das Grösste ist, wird das Zweitgrösste durch das Grösste ersetzt und das Grösste durch das Neue
Wenn das Neue kleiner als das Grösste aber Grösser als das Zweitgrösste ist, wir das Zweitgrösste durch das Neue ersetzt.
Wenn es keine Neuen mehr gibt das Grösste und das Zweitgrösste zusammenzählen und die Summe ausgeben.

So, jetzt hast du alles was du brauchst
--
Was man so alles tut wenn man auf Resultat warten muss ;-)
 
T

tanye

Gast
Nimm ein Neues Schnipsel auf.
Wenn das Neue grösser als das Grösste ist, wird das Zweitgrösste durch das Grösste ersetzt und das Grösste durch das Neue
Wenn das Neue kleiner als das Grösste aber Grösser als das Zweitgrösste ist, wir das Zweitgrösste durch das Neue ersetzt.
Wenn es keine Neuen mehr gibt das Grösste und das Zweitgrösste zusammenzählen und die Summe ausgeben.

So, jetzt hast du alles was du brauchst
--
Was man so alles tut wenn man auf Resultat warten muss ;-)


Ich hab das Prinzip verstanden , daran liegt es nicht ... Ich habn Array und muss daraus die größte Zahl finden ... Aber ich arbeite in meinem Programm mit JOption.showInputDialog und da wiederum weiß ich nicht wie ich das kombinieren muss ohne dass zich Errors dabei rauskommen ???:L
 

XHelp

Top Contributor
Was hat denn showInputDialog damit zu tun?
Plan B wäre:
- Die Werte in eine Liste einzulesen
- Liste absteigend sortieren
- die ersten 2 Elemente auslesen.
 

ARadauer

Top Contributor
da wiederum weiß ich nicht wie ich das kombinieren muss ohne
zuerst die zahlen einlesen lassen und dan die zwei größten aufsummieren.

Ist ja klar, du weißt ja nicht was der benutzer nachher noch eingibt...

poste mal den code den du aktuell hast...
 
T

tanye

Gast
Jop dass klingt super :D Kann ich irgendwie besser nachvollziehen :toll:

Java:
import javax.swing.*;

public class maximum {
	
public static void main (String args[]){
	
int n=0;
int sum=0;

do {

String t =JOptionPane.showInputDialog("Bitte Zahl eingeben : "); 

n=Integer.parseInt(t);

}while(n>=0);

System.out.println("Die Summe der beiden größten Zahlen ist : ");
System.out.println(sum);
}
}

Also ich hab im Moment das hier und komme einfach nicht darüber hinause ... Im Prinzip müssten hier doch die Zahlen die über JOptionPane eingegeben werden abgespeichert sein oder ? Komplett falsch kann der Quelltext doch nicht sein :shock:
 
T

tanye

Gast
wobei "sum" auch noch nicht definiert ist ... deshalb kommt auch immer 0 raus istja auch logisch -.-
 

ARadauer

Top Contributor
darfst du eine ArrayList Collection verwenden?
Wenn nein, muss du ein array verwenden... und du weißt aber vorher nicht wie groß das werden kann.
2 Möglichkeiten..
1: du fragst den Benutzer wie viele zahlen er eingeben willst
2: du nimmst halt mal 1000, so viele wird er ja wohl nicht eingeben wollen.

So natürlich darfst du die zahl nicht n zuweisen sondern ein dein array an der aktuellen stelle... nach eingabe der zahl erhöhst du die aktuelle stelle...
 
B

bone2

Gast
les dir doch schritt für schritt durch was es macht, du setzt n und überschreibst n dann so oft mit einer neuen zahl bis du es mit 0 überschreibst.

du musst es bei jedem durchlauf woanders speichern, wenn du später aus verschiedenen zahlen eine größte zahl finden willst. Ein array bietet sich hier an
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
Java:
import java.util.Arrays;

import javax.swing.JOptionPane;

public class maximum {

   public static void main(String args[]) {

      int current = 0;
      int sum = 0;
      int n = 0;
      int[] werte = new int[20];//ich nehm halt mal 20

      do {

         String t = JOptionPane.showInputDialog("Bitte Zahl eingeben : ");

         n = Integer.parseInt(t);
         werte[current] =n;
         current++;

      } while (n >= 0);

      System.out.println("das sind die werte");
      System.out.println(Arrays.toString(werte));
      
      
      hier bist du dran
      
      System.out.println("Die Summe der beiden größten Zahlen ist : ");
      System.out.println(sum);
   }
}
 

XHelp

Top Contributor
[JAVA=22]
} while ((n >= 0) && (current<werte.length));
[/code]
sieht besser aus... nur so für alle Fälle, falls der Benutzer mehr als 20 Zahlen eingeben will
 

ARadauer

Top Contributor
stimmt...
Falls man mit der Collection API von Java arbeiten darf, ist natürlich sowas sinnvoller...

Java:
import java.util.ArrayList;

public class Maximum {

   public static void main(String args[]) {      
      ArrayList<Integer> werte = new ArrayList<Integer>();
      do {
         String t = JOptionPane.showInputDialog("Bitte Zahl eingeben : ");
         werte.add(Integer.parseInt(t));       

      } while (werte.get(werte.size()-1) >= 0);      
      Collections.sort(werte);
      System.out.println("sum: "+(werte.get(werte.size()-1)+werte.get(werte.size()-2)));
   }
}
 
T

tanye

Gast
Java:
import java.util.Arrays;

import javax.swing.JOptionPane;

public class maximum {

   public static void main(String args[]) {

      int current = 0;
      int sum = 0;
      int n = 0;
      int[] werte = new int[20];//ich nehm halt mal 20

      do {

         String t = JOptionPane.showInputDialog("Bitte Zahl eingeben : ");

         n = Integer.parseInt(t);
         werte[current] =n;
         current++;

      } while (n >= 0);

      System.out.println("das sind die werte");
      System.out.println(Arrays.toString(werte));
      
      
      hier bist du dran
      
      System.out.println("Die Summe der beiden größten Zahlen ist : ");
      System.out.println(sum);
   }
}

Kann ich dann ab da einfach das Array das dabei raus kommt absteigend sortieren und dann die ersten beiden Werte addieren ? Die Idee ist doch auch gefallen eben ... funktioniert das so ? oder muss ich wirklich mit Math.max arbeiten , abspeichern und dann nochma Math.max für die 2.größte Zahl ?
 

XHelp

Top Contributor
Joar, theoretisch kannst du das schon. Die Frage ist, ob du es umsetzen kannst.
Was Math.max damit zu tun hat, weiß ich so auf anhieb nicht (zumindestmal denke ich, dass du es falsch meinst)
 

ARadauer

Top Contributor
mhn wobei wenn ichs mir recht überlege ist das mit der liste und dem array eigentlich gar nicht notwendig....

Java:
import javax.swing.JOptionPane;

public class Maximum {

   public static void main(String args[]) {

      int n = 0;
      int max = -1;
      int max2 = -1;

      do {
         String t = JOptionPane.showInputDialog("Bitte Zahl eingeben : ");
         n = Integer.parseInt(t);
         
         if (n > max) {
            max2 = max;
            max = n;
         } else if (n > max2) {
            max2 = n;
         }
         
      } while (n >= 0);
      System.out.println("summe " + max + " und " + max2 + " ist: " + (max + max2));

   }
}
geht ja auch so... oder hab ich wo einen denkfehler?

nö passt oder?
 

XHelp

Top Contributor
Sollte passen, zumindestmal kam ich im anderen Thread auf eine ähnliche Logik...
Nur warts mal ab, in paar Tagen könnte es heißen, dass man doch die 3 größten Zahlen braucht ;)
 
T

tanye

Gast
Wieso sind max und max2 -1 ? ...

if (n > max)

{
max2 = max;
max = n;
}

Bei der Bedingung dass n größer als max ist , wird max2=max und max=n ausgegeben ? kann mir das noch einer erläutern bitte ? Dann hab ich auch wirklich alles verstanden -.- ... Danke für eure Geduld ...
 

ARadauer

Top Contributor
kann mir das noch einer erläutern bitte
max ist das größte, max2 ist das zweitgrößte

zb 8 und 5

ist kommt eine neue zahl n zum beispiel 10
10 > 8
also das zweitgrößte ist nun nicht mehr 5, sondern 8
max2 = max

und das größte ist nun 10
max = n;
 

Andi_CH

Top Contributor
mhn wobei wenn ichs mir recht überlege ist das mit der liste und dem array eigentlich gar nicht notwendig....
Grins - schön dass du diese Erkenntnis auch schon hast :D
Oder steht da etwas von Liste drin ;-)

Manchmal vergessen wir das Motto "KISS" - Keep It Simple otherwise you're Stupid" :autsch:
ok, die sanftere Version "Keep It Simple and Stupid" :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
kilopack15 Größte zahl eines Arrays finden Java Basics - Anfänger-Themen 1
J In einem Array die größte Zahl ermitteln und Faktorisieren. Java Basics - Anfänger-Themen 5
J größte eingelesene Zahl ausgeben lassen Java Basics - Anfänger-Themen 12
C Felder(Größte Zahl, Index) Java Basics - Anfänger-Themen 6
G Rekursiv die größte Zahl eines Arrays Java Basics - Anfänger-Themen 6
O Größte zahl aus array ermitteln Java Basics - Anfänger-Themen 6
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
A Bitte! This ist wohl das größte Hindernis in Java Java Basics - Anfänger-Themen 19
M Files löschen - alle, ausser das größte! Java Basics - Anfänger-Themen 3
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
M zahl raten Java Basics - Anfänger-Themen 1
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
HelpInneed Zahl. Java Basics - Anfänger-Themen 2
R Perfekte Zahl Java Basics - Anfänger-Themen 8
D Mittlerste Zahl Java Basics - Anfänger-Themen 17
D Grösste Zahl in einer Folge herausfinden. (ULAM) Java Basics - Anfänger-Themen 9
Poppigescorn Häufigkeit einer zahl zählen Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
J Verdoppeln einer Zahl (in dem Fall Münzen) Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
Abraham42 Prozentsatz einer Zahl mehrmals Java Basics - Anfänger-Themen 2
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
S Zahl eingeben Java Basics - Anfänger-Themen 8
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
L Erhöhung der Zahl Java Basics - Anfänger-Themen 3
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
T Eulersche Zahl e Java Basics - Anfänger-Themen 5
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
A Gewürfelte Zahl ausgeben Java Basics - Anfänger-Themen 10
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
O Markoff-Zahl Java Basics - Anfänger-Themen 22
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
H String und Zahl Java Basics - Anfänger-Themen 10
R Zahl 1 bis 100 erraten Java Basics - Anfänger-Themen 12
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
H Würfelspiel, stop bei gleicher Zahl Java Basics - Anfänger-Themen 4
B Array - die Häufigkeit der Zahl zählen Java Basics - Anfänger-Themen 9
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
I Eulersche Zahl Java Basics - Anfänger-Themen 6
F Produkt d. Ziffern einer Zahl..?! Java Basics - Anfänger-Themen 5
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben