Array: Zahlen tauschen?
Hey, weiß jemand wie man diese Aufgabe löst? Komme nicht weiter.
3 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
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));
}
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
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
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;
}