Ich erstelle ein Programm, das den Benutzer nach zehn Zahlen fragt und dann die kleinste und größte Zahl ausgibt. Dies ist mein Code:Kleinste und größte Anzahl Array mit Index?
import java.util.Scanner; // program uses Scanner
public class ArrayTester {
// begin execution
public static void main(String[] args) {
// declare and create array object
// declare smallest and largest int variables
int[] numbers;
numbers = new int[10];
int smallest = numbers[0], largest = numbers[0];
// create Scanner object
Scanner input = new Scanner(System.in);
// prompt user
System.out.print("Please enter 10 numbers: \n");
// use for loop to obtain user input
for (int counter = 0; counter < numbers.length; counter++) {
numbers[counter] = input.nextInt();
} // end obtaining input
// enhanced for loop to find largest and smallest values
for (int i : numbers) {
if (i < smallest) {
smallest = i;
} // end finding smallest
else if (i > largest) {
largest = i;
} // end finding largest number
} // end finding largest and smallest values
// for loop to print user input
System.out.printf("%s%8s\n", "Index", "Input");
for (int counter = 0; counter < numbers.length; counter++) {
System.out.printf("%5d%8d\n", counter, numbers[counter]);
} // end printing input values
// print smallest and largest numbers
System.out.printf("Smallest number: %d\nLargest number: %d\n", smallest, largest);
} // end main
} // end ArrayTester
Das Problem, das ich habe, ist, wenn die Zahlen ausgegeben, ist es mir 0 als kleinstes und 9 als die größte zu geben. Ich weiß, das ist wegen der 10-Nummer-Array, aber wie wäre es behoben, um die kleinste ganze Zahl und die größte ganze Zahl zu zeigen?
Was denken Sie, ist falsch, und was haben Sie getan, um es zu debuggen? – ergonaut
Hinweis Hinweis kleinste = i? Was bin ich dort? – brad
@brad 'i' ist ein * Wert * vom Array, da die Schleife eine erweiterte 'for'-Schleife ist, kein normaler Index' for' loop. – Andreas