publicclassMedian{publicstaticvoidmain(String[]args){int a =4;int b =7;int c =2;int middle =0;int d =0;System.out.print(a);System.out.print(" ");System.out.print(b);System.out.print(" ");System.out.println(c);if((a > b)&&(a < c))
a = middle;elseif((a < b)&&(a > c))
a = middle;elseif((b > a)&&(b < c))
b = middle;elseif((b < a)&&(b > c))
b = middle;elseif((c > a)&&(c < b))
c = middle;elseif((c < a)&&(c > b))
c = middle;if(d ==0)System.out.println(middle);}}
Hallo alle zusammen,
Ich versuche mir seit einiger Zeit das Programmieren mit Java beizubringen mit Hilfe eines Buches und Videos aus dem Internet.Am Ende jedes Kapitles im Buch gibt es einige Übungsaufgaben.Ich bin grade am Ende von kapitel 3(Schleifen) angekommen.Bei einer der Aufgaben muss man ein Programm erstellen,dass die mitllere aus drei Zahlen rauschreibt.Ich habe versucht,dass die drei Zahlen miteinander verglichen werden und dann die mittlere Zahl den Wert middle ersetzt.Den Wert middle hab ich auf Null gesetzt.Aber am Ende wird auch immer Null ausgegeben.Ich hoffe ihr könnt mir helfen.
und was hat das mit schleifen zu tun?
und natürlich wird 0 ausgegeben, du setzt middle am anfang auf 0 und änderst den wert nie. Du setzt dann nur die anderen werte a/b/c auf middle
Also erstmal bin ich gar kein Fan davon ifs ohne geschweifte klammern zu machen. Dann sind if Bedingungen keine schleifen, und wozu du die variable D brauchst ist mir auch nicht ganz klar. Ich bin mir ziemlich sicher, dass das falsche Ergebnis mit der unsauberen Struktur deiner ifs zu tun hat.. Wenn du das sauber schreibst wirst du sicher schnell eine Lösung finden.
Oh und ich seh Grad das deine Zuweisung falsch ist. Wenn du middle ändern willst muss das middle auf der linken Seite stehen
publicclassMiddle{publicstaticvoidmain(String[] args){int a =4;int b =7;int c =2;int middle =0;if((a>b && a<c)||(a<b && a>c)){// Var. a wird gefragt ob die// erste Vorraussetzung UND// zweite Vorraussetztung ODER// dritte UND vierte
middle = a;// Vorraussetztung erfüllt ist}else{if((b>a && b<c)||(b<a && b>c)){// Var. b wird das selbe wie
middle = b;// Var a gefragt}else{// Wenn beide nicht middle
middle = c;// sind dann mache c zu// middle.}}System.out.println(a+", "+b+", "+c+".");// Zum schluss ausgabeSystem.out.println("-------");System.out.println(middle);}}
Hi Ceaser87,
da ich ein genauso blutiger Anfänger bin habe ich auch gleich versucht das Problem zu lösen...
Das mit dem verdrehten Variablen wurde dir ja schon gesagt.
ich habe den Code etwas ein gekürzt mit dem || ODER Operator um einige Schleifen herauszunehmen.
und die Var c prüfe ich nicht mehr ab, wenn die Schleifen für a und b schon false sind.
Aber interessantes Buch wenn es Übungen gibt zum Ende der Kapitel. Wie heißt das Buch?
ich habe den Code etwas ein gekürzt mit dem || ODER Operator um einige Schleifen herauszunehmen.
und die Var c prüfe ich nicht mehr ab, wenn die Schleifen für a und b schon false sind.
tut mir leid, dass ich mich hier so einmische, aber ich will keinen neuen Thread aufmachen. Und zwar habe ich eine Frage. Wie kann man bei verketteten Schleifen die Ausgabe auf nur eine Zeile ausgeben und fängt nicht ständig eine neue Zeile an. Hier mal ein Programmierbeispiel:
Java:
publicclass mantisse{publicstaticvoidmain(String[] args){double a =1.125;double b = a -1;for(int i =0; i <23; i++){if( b *2>=1){
b--;System.out.println("1");}else{System.out.println("0");
b = b *2;}}}}