Frage von brasilFighter, 51

überprüfen von Unterschiedliche Zahlen Java?

Wie kann ich zb. bei 5 zahlen überprüfen ob sie alle unterschiedlich sind ? if ( a != b!= c!= d!=e){ System.out.print("Ungleich"); } else { System.out.println("Error"); }

Damit habe ich es mal versucht.

Antwort
von spaghetticode, 51

Was du suchst, sind die boole'schen Operatoren, mit denen man Bedingungen verknüpfen kann (in deinem Fall ist das logische UND angezeigt).

Bei 5 Zahlen wird das aber arg unübersichtlich. Sinnvoller wäre hier wahrscheinlich eine Lösung mit einem Container (kennt Java einen Mengentyp?), aber so weit scheinst du noch nicht zu sein.

Lies in deinem Lehrbuch über logische Operatoren. Und denk' dran, dass du *jede* Zahl mit *jeder* vergleichen musst, nicht nur "a" mit allen anderen.

Kommentar von TeeTier ,
List<Integer> l = Arrays.asList(a, b, c, d, e);
TreeSet<Integer> s = new TreeSet<Integer>(l);

if (s.size() == l.size()) {
System.out.println("Alle unterschiedlich!");
} else {
System.out.println("Gleiche Elemente!");
}
Kommentar von spaghetticode ,

Ja, sowas habe ich gemeint. Wusste nur nicht, welche Container Java bietet, mit Java spiele ich nur ab und zu ein bisschen rum.

Kommentar von spaghetticode ,

Wobei man sich zumindest einen ganz einfachen Mengentyp ja auch relativ schnell basteln könnte.

Antwort
von EightSix, 31

Zahlen in ein Array packen, Array sortieren, Schleife über Array laufen und überprüfen ob 2mal die gleiche Zahl hintereinander vorkommt.

Antwort
von T1Mde, 32

if(a!=b & b!=c & c!=d & d!=e){ //alle ungleich }else{ //nicht alle ungleich }

Kommentar von spaghetticode ,

Damit hast du nicht alle Fälle abgedeckt.

Kommentar von T1Mde ,

Ich weiß, is mir auch schon aufgefallen ^^

Kommentar von brasilFighter ,

Sorry das ich es nicht erwähnt habe aber die Bedingung ist auch noch das dies ohne Array passieren soll. 

if (a != b | a != c | a != d | a != e | b != c | b != d | b != e | c != d | c != e | d != e){

    if ((b & c | b & d | b & e | c & d | c & e | d & e) < a & a < (b & c | b & d | b & e | c & d | c & e | d & e)){

      System.out.println("Der Median von a b c d und e ist : "+ a); 

Soweit habe ich es bis jetzt aber egal was ich eingebe er führt meine else anweisung aus " Error".

Kommentar von T1Mde ,

Du musst das oben mit & verknüpfen

Kommentar von brasilFighter ,

Hab ich korriegiert doch er führt trozdem nur die else Anweisung aus

Kommentar von brasilFighter ,

Das ist meine komplette if Schleife

//Überprüfung auf unterschiedlichkeit

 if (a != b & a != c & a != d & a != e & b != c & b != d & b != e & c != d & c != e & d != e){

 //Überprüfung welche Wert Mittig ist

 if ((b & c | b & d | b & e | c & d | c & e | d & e) < a && a < (b & c | b & d | b & e | c & d | c & e | d & e)){ 

 System.out.println("Der Median von a b c d und e ist : "+ a); } 

 else if ((a & c | a & d | a & e | c & d | c & e | d & e) < b & b < (a & c | a & d | a & e | c & d | c & e | d & e)){ 

 System.out.println("Der Median von a b c d und e ist : "+b); } 

 else if ((a & b | a & d | a & e | b & d | b & e | d & e) < c & c < (a & b | a & d | a & e | b & d | b & e | d & e)){ 

 System.out.println("Der Median von a b c d und e ist : "+c); }

 else if ((a & b | a & c | a & e | b & c | b & e | c & e) < d & d < (a & b | a & c | a & e | b & c | b & e | c & e)){ 

 System.out.println("Der Median von a b c d und e ist : "+d); } 

 else if ((a & b | a & c | a & d | b & c | b & d | c & d) < e & e < (a & b | a & c | a & d | b & c | b & d | c & d)){ 

 System.out.println("Der Median von a b c d und e ist : "+e); }

 else { System.out.println("Kein Median"); }

 } 

 else { System.out.println("Error es gibt Gleiche Zahlen"); }

Kommentar von T1Mde ,

Was hast du eigentlich vor?

Kommentar von brasilFighter ,

5 Werte eingeben , dann den median davon berechnen ohne array zu verwenden , und dann den median ausgeben 

Kommentar von T1Mde ,

und dabei darf keine Zahl doppelt vorkommen?

Kommentar von brasilFighter ,

genau sie müssen alle unterschiedlich sein

Kommentar von T1Mde ,

Wie werden die Werte eingegeben?

Keine passende Antwort gefunden?

Fragen Sie die Community