Java :: Aufgabe #304

1 Lösung Lösung öffentlich

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ß

Lösungen:

vote_ok
von vinuel (230 Punkte) - 24.10.2020 um 19:44 Uhr
Quellcode ausblenden Java-Code
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;
	}	
}