Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
int npreis = preis[0];
for (int k= 1; k < preis.length; k++){
if(npreis > preis[k] && npreis != 0) npreis = preis[k];
}
Das hatte ich dir vorher auch schon geraten zu überprüfenreinschreib er sucht aus dem Array immer die nächst tiefere er sieht die nullen die ausgeführt werden, wenn ich das Array abbreche mit "0" so wie Sascha das grad erklärt hat. Also wird er immer die Nullen finden.
Kann es sein, dass er die 0 erkennt, dann die Schleife abbricht, aber im Array an den Stellen, an der die Schleife nicht mehr war schon vorher nullen waren?
if ( j != 0 ){
preis[i] = j;
}
Sollte eigentlich gehen. Ich denke, dass Problem liegt in der Programmlogik. Du weißt ja jetzt, dass warscheinlich immer 0 auftreten. Mit diesem Wissen solltest du nochmal über deine Algorytmen nachdenkenIch kann mir nicht vorstellen das das nicht gehen soll das man ihm schlichtweg sagt "ey alda nimm keine null" ^.^
import java.util.Scanner;
public class MinExample
{
public static void main(String[] args)
{
int[] preis = new int[15];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < preis.length; i++)
{
System.out.print("Bitte Artikelpreis in Cent eingeben: ");
int j = sc.nextInt();
if (j == 0)
{
break;
}
preis[i] = j;
}
System.err.println("Kleinster Wert: "+getMinFromArray(preis));
}
private static int getMinFromArray(int[] intArray){
if(intArray == null || intArray.length == 0)
return -1;
int min = intArray[0];
for (int i = 1; i < intArray.length && intArray[i] != 0; i++)
{
if(min>intArray[i]){
min = intArray[i];
}
}
return min;
}
}
P.S.:
Es gibt eine Schleife die den höchsten wert ermittelt, allerdings die funktioniert ohne probleme.
Zitat:
int hpreis =0;
for (int l = 0; hpreis < preis[l]; l++)
{
hpreis = preis[l];
}
//sucht den höchsten preis aus dem array preis
System.out.println("Der höchste Preis beträgt" + hpreis + "Cent" );