Java :: Aufgabe #304
1 Lösung
Differenz(en) von Eingabewerten
Fortgeschrittener - Java
von JKooP
- 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
Lösungen:
package a304;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); // input scanner
System.out.println("Bitte geben sie alle gewünschten nummern getrennt mit einem Komma \",\" ein:");
String values = input.next(); //eingelesene werte als string in "values" speichern
int[] numbers = split(values);
System.out.println("niedrigste Differenz: " + getLowestDiff(numbers));
System.out.println("höchste Differenz: " + getHighestDiff(numbers));
}
private static int[] split(String numbers) {
String[]numsString = numbers.split(",");
int[] erg = convertToIntArray(numsString);
return erg;
}
private static int[] convertToIntArray(String[] numbers) {
int[] nums = new int[numbers.length];
for(int i = 0; i < numbers.length; i++) {
nums[i] = Integer.parseInt(numbers[i]);
}
return nums;
}
private static int getLowestDiff(int[] numbers) {
int lowestDiff = Integer.MAX_VALUE;
for(int i = 0; i < numbers.length; i++) {
for(int j = 0; j < numbers.length; j++) {
if(numbers[i]-numbers[j]>0 && numbers[i]-numbers[j] < lowestDiff) {
lowestDiff = numbers[i]-numbers[j];
}
}
}
return lowestDiff;
}
private static int getHighestDiff(int[] numbers) {
int highestDiff = Integer.MIN_VALUE;
for(int i = 0; i < numbers.length; i++) {
for(int j = 0; j < numbers.length; j++) {
if(numbers[i]-numbers[j]>0 && numbers[i]-numbers[j] > highestDiff) {
highestDiff = numbers[i]-numbers[j];
}
}
}
return highestDiff;
}
}