任意输入一个5个元素的整数数组,求数组中的最大值和最小值之差是否在该数组中,如果在,则找出下标,如果不在,则输出不在
public static void main(String[] args) throws IOException {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
int max = list.stream().max(Integer::compareTo).get();
int min = list.stream().min(Integer::compareTo).get();
int index = list.indexOf(max - min);
System.out.println(index == -1 ? "不在" : index);
}
温馨提示:若问题解决了,望给个采纳,谢谢!若有其他疑问随时咨询
1、效果如下
不存值情况
存在值输出下标
2、代码如下
import java.io.*;
import java.util.Arrays;
class test
{
public static void main (String[] args) throws java.lang.Exception
{
//定义一个5个元素的整数数组
int arr[]=new int[5];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*100);
}
//计算数组中最大值和最小值之差
int maxValue=0,minValue=0,value=0;
for(int i=0;i<arr.length;i++){
if(arr[i]>maxValue || maxValue==0) maxValue=arr[i];
if(arr[i]<minValue || minValue==0) minValue=arr[i];
}
value=maxValue-minValue;
System.out.println("数组值:"+Arrays.toString(arr));
System.out.println("最大值:"+maxValue);
System.out.println("最小值:"+minValue);
System.out.println("最大值和最小值之差:"+value);
int index=0;
boolean flag =false;
for(int i = 0; i < arr.length; i++){
if(arr[i]==value){
flag = true;
index=i;
break;
}
}
if(flag)
System.out.println("数组:"+Arrays.toString(arr)+",存在值:"+value+",下标值为:"+index);
else
System.out.println("数组:"+Arrays.toString(arr)+",不存在值:"+value);
}
}