1 // Mittelwert.java
2 import java.util.Scanner;
3
4 /** 5 * Mittelwert zeigt die Mittelwertberechnung zweier ganzer Zahlen. 6 * Beispielprogramm zur Programmiertechnik 1, Teil 3. 7 * @author H.Drachenfels 8 * @version 29.10.2019 9 */
10 public final class Mittelwert {
11 private Mittelwert() { }
12
13 private static final Scanner EINGABE = new Scanner(System.in);
14
15 /** 16 * main ist der Startpunkt des Programms. 17 * @param args wird nicht verwendet. 18 */
19 public static void main(String[] args) {
20 System.out.println("Zwei ganze Zahlen eingeben: ");
21 int a = EINGABE.nextInt();
22 int b = EINGABE.nextInt();
23 int c;
24 //c = (a + b) / 2; // falsch, wenn a + b > Integer.MAX_VALUE
25 //c = a / 2 + b / 2; // falsch, wenn a und b ungerade
26 //c = a + (b - a) / 2; // falsch, wenn b - a > Integer.MAX_VALUE
27 //c = a + b >> 1; // falsch, wenn a + b > Integer.MAX_VALUE
28 //c = a + b >>> 1; // ok, wenn a + b positiv
29 //c = (int) (((long) a + (long) b) / 2); // ok, wenn a und b int
30 c = a / 2 + b / 2 + (a % 2 + b % 2) / 2; // ok, aber viele Oper.
31
32 System.out.printf("Mittelwert: %d%n", c);
33 }
34 }
35