packagecom.mxf.test;/*
* 题目:定义一个int型的一维数组,包含10个元素,赋值一些随机整数(两位数)
* 求出所有元素的最大值、最小值、和值、平均值并输出
*/publicclassTest4{publicstaticvoidmain(String[] args){int[] arr =newint[10];//2位数:10~99 99-10+1=90,+10for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random()*90)+10;}for(int i=0;i<arr.length;i++){System.out.print(arr[i]+"\t");}System.out.println();//求数组元素的最大值int max = arr[0];for(int i=0;i<arr.length;i++){if(max<arr[i]){
max = arr[i];}}System.out.println("最大值为:"+max);//求数组元素的最小值int min = arr[0];for(int i=0;i<arr.length;i++){if(min>arr[i]){
min = arr[i];}}System.out.println("最小值为:"+min);//求数组元素的总和int sum =0;double average =0;for(int i=0;i<arr.length;i++){
sum += arr[i];}//求数组元素的平均值
average =(sum+0.0)/arr.length;System.out.println("和值为:"+sum);System.out.println("平均值为:"+average);}}
//2. 数组的反转for(int i=0;i<array1.length/2;i++){int num = array1[i];
array1[i]= array1[array1.length-i-1];
array1[array1.length-i-1]= num;}
//3.数组的查找//3.1线性查找int dest =11;boolean flag =true;for(int i=0;i<array1.length;i++){if(array1[i]==dest){System.out.println("找到了指定的元素,位置为:"+i);
flag =false;break;}}if(flag){System.out.println("很抱歉,没有找到哦!");}//3.2二分法查找(熟悉——后续有现成的结构)前提:所要查找的数组必须有序【挺像数学中的二分法找最大值的】//2,3,5,7,11,13,17,19int dest1 =17;int head =0;int end = array1.length-1;boolean isFlag =true;while(head<=end){int mid =(head+end)/2;if(dest1==array1[mid]){System.out.println("找到了指定的元素,位置为:"+mid);
isFlag =false;break;}elseif(dest1>array1[mid]){
head = mid+1;}else{
end = mid-1;}}if(isFlag){System.out.println("很抱歉,没有找到哦!");}