如何在不改变数组顺序的情况下找到整型数组中的最小值?
代码片段:
int[] tenIntArray = new int [10];
int i, userIn;
Scanner KyBdIn = new Scanner(System.in);
System.out.println("Please enter 10 integer numbers ");
for(i = 0; i < tenIntArray.length; i++){
System.out.println("Please enter integer " + i);
userIn = KyBdIn.nextInt();
tenIntArray[i] = userIn;
}
我不确定如何在tenIntArray中找到最小的数组值并显示位置
例如,数组holds [50, 8, 2, 3, 1, 9, 8, 7 ,54, 10]
输出应该是"The smallest value is 1 at position 5 in array
“
发布于 2013-12-15 02:57:26
试试这个:
//Let arr be your array of integers
if (arr.length == 0)
return;
int small = arr[0];
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < small) {
small = arr[i];
index = i;
}
}
发布于 2015-05-11 17:37:12
我提出的方法将同时找到min
和max
。
public static void main(String[] args) {
findMinMax(new int[] {10,40,50,20,69,37});
}
public static void findMinMax(int[] array) {
if (array == null || array.length < 1)
return;
int min = array[0];
int max = array[0];
for (int i = 1; i <= array.length - 1; i++) {
if (max < array[i]) {
max = array[i];
}
if (min > array[i]) {
min = array[i];
}
}
System.out.println("min: " + min + "\nmax: " + max);
}
显然,这不是最优化的解决方案之一,但它将为您工作。它使用简单的比较来跟踪min
和max
的值。输出为:
min: 10 max: 69
发布于 2015-07-30 18:22:39
int[] input = {12,9,33,14,5,4};
int max = 0;
int index = 0;
int indexOne = 0;
int min = input[0];
for(int i = 0;i<input.length;i++)
{
if(max<input[i])
{
max = input[i];
indexOne = i;
}
if(min>input[i])
{
min = input[i];
index = i;
}
}
System.out.println(max);
System.out.println(indexOne);
System.out.println(min);
System.out.println(index);
https://stackoverflow.com/questions/20585702
复制相似问题