Array: Zahlen tauschen?

3 Antworten

Schön mit Kommentaren:

public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in); 
	scanner.useDelimiter("\\D+");
	
	// Zahlen einlesen
	System.out.println("Bitte Zahlen eingeben (0 = Ende)");
	int[] numbers = scanner.tokens().mapToInt(Integer::parseInt).takeWhile(num->num!=0).limit(20).toArray();
	scanner.close();
	
	// Prüfen, ob 0 als erstes eingegeben wurde
	if (numbers.length == 0) {
		System.out.println("Naja, du musst auch schon was anderes als 0 eingeben, wenn ich was tauschen soll.");
		return;
	}
	
	// Zahlen tauschen
	for (int i = 1; i<numbers.length; i+=2) {
		int temp = numbers[i-1];
		numbers[i-1] = numbers[i];
		numbers[i] = temp;
	}
	
	// Array ausgeben
	System.out.println("Tadaa, ein Ergebnis: " + Arrays.toString(numbers));
}

Ich glaube das müsste ca. so sein. Lösung ist in Python3

zahlen = []
zahlenCount = 20


while i < 20:
    #Ganzzahl einlesen
    while True:
        try:
            userZahl = int(input('Zahl: '))
            break
        except ValueError:
            print('Bitte nur Ganzzahlen eingeben!')
    if userZahl == 0:
        break
    zahlenCount += 1
    zahlen += [userZahl]


print(zahlen)
if zahlenCount > 0:
    for i in range(0,zahlenCount,2):
        if i+1 < zahlenCount:
            temp = zahlen[i]
            zahlen[i] = zahlen[i+1]
            zahlen[i+1] = temp
    print(zahlen)
else:
    print('Null Zahlen in der Liste :/')
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
bschbaum 
Fragesteller
 27.04.2022, 22:25

Kannst du auch Java oder nur Python?

0
static int[] speicher = new int[21];
static int eingabe;

public static void main(String[] args) {

    System.out.println(Arrays.toString(ZahlenTauschen()));

}

public static int[] ZahlenTauschen() {
    int i;
    int j = 0;
    for (i = 0; i < 20; i++) {
        Scanner scanner = new Scanner(System.in);
        eingabe = Integer.parseInt(scanner.next());
        if (eingabe == 0 && i == 0) {
            System.out.print("Bite gebe eine andere Zahl als 0 ein\n");
            i--;
        } else {
            if (eingabe != 0) {
                speicher[i] = eingabe;
            } else if (eingabe == 0 && i > 0) {
                break;
            }
        }
    }
    int[] ausgabe = new int[i];
    do{
        ausgabe[j] = speicher[j];
        j++;

    }while (speicher[j] != 0);


    int k = 0;
    int h = 1;
    while (h < ausgabe.length) {
        int m = ausgabe[k];
        int n = ausgabe[h];
        ausgabe[h] = m;
        ausgabe[k] = n;
        k += 2;
        h += 2;
    }
    return ausgabe;
}