mifanlier 发表于 2017-2-23 09:15
其实你遍历数组获取最值的索引就ok,有索引值就可以知道最值是多少了,没必要通过遍历去直接知道最值的实 ...
package myexam;
/*
* (1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
* (2)先将数组最大元素与最后一位元素进行交换,再将最小元素与第一位元素进行交换,并打印数组
* 我的代码:
*
*/
public class Test9 {
public static void main(String[] args) {
int[] arr={6,2,9,15,1,5,20,7,18};
printArray(arr);
fun(arr);
}
//获取数组最大值的方法
private static void fun(int[] arr) {
int min,max;
max=arr[0];
min=arr[0];
for( int i=1;i<arr.length;i++){
if(max<arr){
max=arr;
}
}
for( int i=0;i<arr.length;i++){
if(min>arr){
min=arr;
}
}
System.out.println("max="+max+"=arr["+getIndex(arr, max)+"]");
System.out.println("min="+min+"=arr["+getIndex(arr, min)+"]");
int[] arr1=exchange(arr, 0, getIndex(arr, min));
int[] arr2=exchange(arr1, arr1.length-1, getIndex(arr1, max));
System.out.println("------交换后-------");
printArray(arr);
}
//指定两个元素交换的方法
@SuppressWarnings("unused")
private static int[] exchange(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr;
arr=temp;
return arr;
}
//获取想要元素角标的方法
private static int getIndex(int[] arr,int key){
int temp=0;
for(int i=0;i<arr.length;i++){
if(arr==key)
temp=i;
}
return temp;
}
//打印元素的方法
private static void printArray(int[] arr){
System.out.print("{");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr+" ");
}else{
System.out.print(arr+",");
}
}
System.out.print("}");
System.out.println();
}
}
捕获.PNG (13.67 KB, 下载次数: 38)
运行结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |