1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Runde 2 -- und ich ver2fel auch

  • =?!
  • 19. Oktober 2007 um 14:22
  • Unerledigt
  • =?!
    1
    =?!
    Gast
    • 19. Oktober 2007 um 14:22
    • #1

    Schönen Nachmittag zusammen!

    Angabe: Entwerfe ein Programm, welches 3 verschiedene Zahlen einliest, und von diesen 3 Zahlen den Median ausgibt.

    Ich will diese Aufgabe ohne arrays lösen, weil wir das bis jez noch nicht gemacht haben.

    Habs seit gestern auf viele verschiedene Arten probiert, aba ich kriegs einfach nicht auf die Reihe :frowning_face:

    Am einfachsten in meinen Augen wäre

    Code
    if ((a < b < c) ^ (c < b < a))  {System.out.println("Median = " +b);}
          else if ((b < a < c) ^ (c < a < b)) {System.out.println("Median = " +a);}
          else if ((a < c < b) ^ (b < c < a)) {System.out.println("Median = " +c);}

    so etwas in die Richtung, aba so funktionierts mal jedenfalls nicht.

    Alle anderen Methoden die ich ausprobiert hab, sind ungleich länger, und es haut einfach nicht so hin, wie es gefragt ist.

    Entweder es gibt mir dann alle 3 Zahlen als Median aus oda sonstige Fehler.

    Bitte um Hilfe, muss das Programm bis 18:00 abgeben :face_with_rolling_eyes:

  • max_rayman
    9
    max_rayman
    Mitglied
    Reaktionen
    17
    Punkte
    887
    Beiträge
    169
    • 19. Oktober 2007 um 14:43
    • #2

    ^ ist bitweises EXOR.
    :tired_face: ist logisches OR.

    Java Operators

    Verständlicher und auch wieder verwendbar wäre es wenn du die Zahlen in einen Collection packst, diese sortierst und dann das mittlere Element ausgibst.
    Dann könntst du auch bei einer geraden Anzahl von Zahlen den Median berechnen und bist ausserdem nicht von den Anzahl der Eingaben abhängig.

  • MyAcc
    3
    MyAcc
    Mitglied
    Reaktionen
    1
    Punkte
    46
    Beiträge
    9
    • 19. Oktober 2007 um 14:45
    • #3

    die abfrage (a < b < c) liefert in java keinen gueltigen wert (der aber von der if-Abfrage verlangt wird): Du musst diese Abfrage "aufteilen": also in:
    (a < b) && (b < c)
    dieser Ausdruck entspricht der Semantik, wie du es haben wolltest.

  • max_rayman
    9
    max_rayman
    Mitglied
    Reaktionen
    17
    Punkte
    887
    Beiträge
    169
    • 19. Oktober 2007 um 14:57
    • #4
    Zitat von MyAcc

    die abfrage (a < b < c) liefert in java keinen gueltigen wert (der aber von der if-Abfrage verlangt wird): Du musst diese Abfrage "aufteilen": also in:
    (a < b) && (b < c)
    dieser Ausdruck entspricht der Semantik, wie du es haben wolltest.

    Wusste ich auch nicht :D.

    Also so geht:

    Code
    int a=1;
        int b=2;
        int c=3;
    
            if (((a<b) && (b<c)) || ((c<b) && (b<a))) {
                System.out.println("Median: " + b);    
            }
  • kira
    7
    kira
    Mitglied
    Reaktionen
    5
    Punkte
    450
    Beiträge
    88
    • 19. Oktober 2007 um 15:00
    • #5

    Mich wundert eigentlich, dass die (a < b < c) Ausdrücke keinen Syntax-Error oder zumindest ein Warning generiert haben..

  • max_rayman
    9
    max_rayman
    Mitglied
    Reaktionen
    17
    Punkte
    887
    Beiträge
    169
    • 19. Oktober 2007 um 15:06
    • #6

    Im Eclipse zeigt ers als Fehler ohne Lösung an.

  • =?!
    1
    =?!
    Gast
    • 19. Oktober 2007 um 15:07
    • #7

    Danke für eure Antworten, probier mal schnell aus, und poste dann falls es gefutzt hat, oder nicht..

    lg, Bertl

  • =?!
    1
    =?!
    Gast
    • 19. Oktober 2007 um 15:24
    • #8

    Nochmals DANKE für eure Hilfe, mit dem Aufspalten hat es auf Anhieb funktioniert!!!

    Kann jetzt endlich abgeben! War ja mit meinem Ansatz im Prinzip schon fertig (vom Denken her), nur dachte ich, dass es auch (a < b < c) funktioniert, wär ja einfacher!

    Schönes Wochenende euch allen, mfg, Bertl :wave:

  • Neverlasting
    1
    Neverlasting
    Mitglied
    Punkte
    5
    Beiträge
    1
    • 20. Oktober 2007 um 02:26
    • #9
    Zitat von kira

    Mich wundert eigentlich, dass die (a < b < c) Ausdrücke keinen Syntax-Error oder zumindest ein Warning generiert haben..


    Naja, vielleicht wird zuerst a < b ausgewertet, was sagen wir true liefert und dann true < c, wo true möglicherweise zu 1 umgewandelt wird... Bin mir aber nicht sicher :winking_face:

    "Me love technology." -- Cookie Monster
    "Oft ist das Denken schwer, indes // das Schreiben geht auch ohne es." -- Wilhelm Busch

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung