我正在创建一个程序,要求用户输入十个数字,然后输出最小和最大的数字。这是我的代码:使用索引的最小和最大数字数组?
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
我遇到的问题是当数字输出时,它给我0作为最小和9作为最大。我知道这是因为10数组数组,但如何固定显示最小整数和最大整数?
你认为什么是错的,你做了什么来调试它? – ergonaut
提示提示最小=我?我在那里? – brad
@brad'i'是数组中的一个*值*,因为循环是增强的for循环,而不是正常的循环索引。 – Andreas