# 3 Zahlen einlesen und nach der Größe Sortieren



## lidZ1 (20. Sep 2012)

Hallo zusammen, ich brauche mal eure Hilfe.

Ich möchte gerne mit der Anweisung 3 Zahlen einlesen und nach der Größe Sortieren.


```
public class sortieren {

  public static void main( String[] args )  {

    System.out.println( "Zahl1 eingeben und mit Return abschliessen:" );
    int a = 0;
    System.out.println( "Zahl2 eingeben und mit Return abschliessen:" );
    int b = 0;
    System.out.println( "Zahl3 eingeben und mit Return abschliessen:" );
    int c = 0;

    try {
      BufferedReader in = new BufferedReader(
                          new InputStreamReader( System.in ) );
      	a = Integer.parseInt(in.readLine());
	b = Integer.parseInt(in.readLine());
	c = Integer.parseInt(in.readLine());


    } catch( Exception ex ) {
      System.out.println( ex.getMessage() );
    }
  
	if(a+b+c=0) {
	System.out.println("0");

	}		

	else {
	
		if(a>b) {
			
			if(b>c) {

				System.out.println(c);
				System.out.println(b);
				System.out.println(a);

				}
			else {
				System.out.println(b);
				System.out.println(c);
				System.out.println(a);
				}
			}
		else {
		
			if(a>c) {

				System.out.println(c);
				System.out.println(a);
				System.out.println(b);

				}

			else {

				System.out.println(a);
				System.out.println(c);
				System.out.println(b);

				}

			}
		}

  	}
   }
```

Ich bekomme aber die Fehlermeldung Unexpected Type ( if(a+b+c="0") ). Warum?

Danke


----------



## VfL_Freak (20. Sep 2012)

Moin,


```
if( (a+b+c) == 0 ) // !!!
```

Gruß
Klaus


----------



## ARadauer (20. Sep 2012)

weil = eine Zuweisung ist und == der Vergleich


----------



## jgh (20. Sep 2012)

weil bei einer if-Abfrage ein Wahrheitswert erwartet wird und keine (was auch immer das ist^^)

=>
	
	
	
	





```
if(a+b+c==0)
```


----------



## Ikaron (20. Sep 2012)

Ich persönlich würde das so lösen:


```
public static void main(String[] args) {

	int maxValueAmount = 16;

	Scanner sc = new Scanner(System.in);

	int[] ints = new int[maxValueAmount];

	try {

		for (int i = 0; i < maxValueAmount; i++) {

			System.out.println("Bitte Zahl eingeben oder \"x\" zum Sortieren...");

			if (!sc.hasNextLine()) break;

			String s = sc.nextLine();

			if (s.equalsIgnoreCase("x")) break;

			try {

				ints[i] = Integer.parseInt(s);
			} catch (NumberFormatException e) {
				System.err.println(s + " ist keine Zahl!");
			}
		}
	} catch (Exception e) {
	} finally {
		sc.close();
	}

	int m = 0xCAFEBABE;

	int[] unsortedInts = ints;
	boolean[] checkedInts = new boolean[ints.length];
	int[] sortedInts = new int[ints.length];

	for (int i = 0; i < sortedInts.length; i++) {

		int lowest = m;

		for (int j = 0; j < unsortedInts.length; j++)
			if (!checkedInts[j]) if (lowest == m || unsortedInts[j] < unsortedInts[lowest]) lowest = j;
		sortedInts[i] = unsortedInts[lowest];
		checkedInts[lowest] = true;
	}

for (int i : sortedInts)
	if (i != m) System.out.println(i);
}
```

Nicht getestet, aber sollte passen


----------



## Pentalon (20. Sep 2012)

Hier eine sehr einfache Variante, die mit dem BubbleSort arbeitet.
Die Eingabe hab ich mir gespart. Einfach die Werte zum Testen in das intFeld eingeben, oder eine Eingabemethode hizufügen.


```
public class Test {

	public static int[] intFeld = {5,3,4,7,6,1,10,1000,99,54,23,12,76,87,456};
	public static boolean change;
	public static int buffer;
	
	public static void sort() {						// Ein schöner kleiner BubbleSort
		do {
			change = false;
			
			for(int a = 0; a< intFeld.length-1; a++) {
				if(intFeld[a] > intFeld[a+1]) {
					buffer = intFeld[a];
					intFeld[a] = intFeld[a+1];
					intFeld[a+1] = buffer;
					change = true;
				}
			}
		} while (change);
	}
	
	public static void ausgabe() {
		for (int a = 0; a<intFeld.length; a++)
			System.out.println("Position "+a+" Inhalt "+intFeld[a]);
	}
	
	public static void main(String[] args) {
		ausgabe();				// Vor dem Sortieren
		sort();
		ausgabe();				// Nach dem Sortieren
	}
}
```

Soll nur als Anregung dienen.
Ich hoffe, es hilft Dir.

Pentalon


----------

