解题思路:
假设数组中的第一个数和第一个下标是最大值,按照打擂主的形式进行一一比较,如果max<array[i]时,那么此时array[i]就是max,即max=array[i]。那么此时最大下标就是maxIdex=i 。这就是本题的思路。
最小值和最小值的下标同理。
例题:随机一个数组,找出数组中最大的数和最大数的位置,通过打擂台的方式
int len = (int) (Math.random() * 10 + 1);
int[] array = new int[len];
for (int i = 0; i < len; i++) {
array[i] = (int) (Math.random() * 10 + 1);
}
System.out.println("数组的内容是:");
for (int i = 0; i < len; i++) {
System.out.print(array[i]+"\t");
}
//找出最大值
int maxIdex=0;//假设数组中第一个数的下标是最大数的位置
int max = array[0];//假设数组中第一个数是最大值
for (int i = 1; i <len ; i++) {
if (max < array[i]) {
max = array[i];//你赢了,你是擂主
maxIdex=i;
}
}
System.out.println("\n"+"数组中的最大值是:"+max);
System.out.println("数组中最大数的下标是:"+maxIdex);
例2:随机一个数组,找出数组中最小的数和最小数的位置,通过打擂台的方式
int len=(int)(Math.random()*10+1);
int[] array=new int[len];
for (int i = 0; i < len; i++) {
array[i]=(int)(Math.random()*10+1);
}
System.out.println("数组中最小的数是:");
for (int i = 0; i < len; i++) {
System.out.print(array[i]+"\t");
}
int min=array[0];
int minIdex=0;
for (int i = 1; i <len ; i++) {
if (min>array[i]){
min=array[i];
minIdex=i;
}
}
System.out.println("\n"+"数组中最小的数是:"+min);
System.out.println("最小下标是:"+minIdex);