2016-12-09 4 views
0
Scanner input = new Scanner(System.in); 
int[] numbers = new int[10]; 

for (int i = 0; i < numbers.length; i++) 
{ 
    System.out.println("Please enter number"); 
    numbers[i] = input.nextInt(); 
} 

for (int i = 10 ; i > numbers.length ; i++) 
{ 
    int min = numbers [i]; 
    if (numbers [i] > min) 
    numbers [i] = input.nextInt(); 
} 
System.out.println("the min values is " + min ); 

ich hier gestoppt ..bitte helfen
i den Minimalwert aus der Eingabe vom BenutzerErstellen eines Arrays und erhalten dann min mit while-Schleife

+0

Warum möchten Sie ein Array für die min erstellen? Per Definition gibt es nur einen minimalen Wert. – Robert

+0

Müssen Sie ein Array verwenden? Sie könnten einfach die min der Eingabewerte nehmen. –

+0

Ihre Schleifen sind inkonsistent, und wahrscheinlich ist das ein Teil Ihrer Verwirrung. Die 2. Schleife wird niemals eingegeben. – Robert

Antwort

0

zu ergreifen, um die mindestens 10 Eingänge zählen möchten Sie kann tun

Scanner input = new Scanner(System.in); 
int min = InStream.range(0, 10) 
        .peek(i -> System.out.println("Please enter number")) 
        .map(i -> input.nextInt()) 
        .min(); 
System.out.println("the min values is " + min); 

was in Ihrem Code falsch ist

Das wird nicht funktionieren, weil der letzte Index ist [9] nicht [10] auch statt Vermindern Sie Inkrementieren, müssen Sie so etwas wie

for (int i = numbers.length-1 ; i >= 0 ; i--) 

Sie wäre in der Lage dies in einem Debugger, um zu sehen, oder durch Lesen der Fehlermeldung wie ArrayIndexOutOfBoundException: 10

+3

Ja, es funktioniert und macht den Job, aber wenn das OP Probleme mit einfachen for-Schleifen hat, glaube ich nicht, dass Ihre Antwort ihm etwas bedeutet. – TDG

+0

@TDG Ich vermute, mit einem Debugger oder Lesen von Fehlermeldungen ist etwas anderes, was auch nichts bedeutet. –

+1

Ich bin hier zum Lernen .. – mo7al876any

0

Erstens müssen Sie eine Menge Sache mit Ihnen verstehen Code ist falsch.

Ansatz 1:

Scanner input = new Scanner(System.in); 
int[] numbers = new int[10]; 

for (int i = 0; i < numbers.length; i++) 
{ 
    System.out.println("Please enter number"); 
    numbers[i] = input.nextInt(); 
} 
int min = numbers [0]; // Need to initialize it here outside the loop 
for (int i = 1 ; i < numbers.length ; i++) // Need to count from 2nd element to the last 
{ 
    if (numbers [i] < min) // changing condition if number is less than min 
     min = numbers [i]; // setting min to that number 
} 
System.out.println("the min values is " + min ); 

Ansatz 2: Hier prüfen wir für den Minimalwert, wenn die Verwendung des Wertes ist die Eingabe selbst.

Scanner input = new Scanner(System.in); 
int[] numbers = new int[10]; 
boolean flagForMin = true; 
int min; 
for (int i = 0; i < numbers.length; i++) 
{ 
    System.out.println("Please enter number"); 
    numbers[i] = input.nextInt(); 
    if(flagForMin) { 
     min=numbers[i]; 
     flagForMin=false; 
    } else { 
     if (numbers [i] < min) 
      min = numbers [i]; 
    } 
} 
System.out.println("the min values is " + min ); 

Diese sind mit dem for-Schleife Ansatz können Sie die Schleife ändern, während sie von vor der Schleife initialing & die Zähler in letzter Anweisung der Schleife erhöht wird.

Beispiel:

Scanner input = new Scanner(System.in); 
int[] numbers = new int[10]; 
boolean flagForMin = true; 
int min; 
int i = 0; 
while(i < numbers.length) 
{ 
    System.out.println("Please enter number"); 
    numbers[i] = input.nextInt(); 
    if(flagForMin) { 
     min=numbers[i]; 
     flagForMin=false; 
    } else { 
     if (numbers [i] < min) 
      min = numbers [i]; 
    } 
    i++; 
} 
System.out.println("the min values is " + min ); 
+0

thannkkkks mann du rettest mich – mo7al876any

0

Sie haben noch 2 for Schleifen zu verwenden. Sie brauchen nicht einmal ein Array. Werfen Sie einen Blick auf:

import java.util.*; 

public class Main { 
    public static void main (String[] args) { 
     Scanner input = new Scanner(System.in); 
     int min = Integer.MAX_VALUE; 

     for (int i = 0; i < 10; i++) { 
      System.out.println("Please enter number"); 
      int number = input.nextInt(); 

      if (number < min) { 
       min = number; 
      } 
     } 

     System.out.println("the min values is " + min); 
    } 
} 
+0

thankkk du mann – mo7al876any

Verwandte Themen