这个是考试遇到的一个面试题,看起来简单,但是两个数组的对应的元素的位置是不变的,这一个点还是不太好考虑到的。以后引起注意还是。
import java.lang.Math;
public class three_nums{
public static void main(String[] agrs){
int data[] = {12, 23, 45, 68, 99, 56, 32};
findthree(data);
}
pubilc static void findthree(int[] arr){
int sun=0;
float avg;
int[] data2 = new int[arr.length];
for(int i=0;i<arr.length;i++){
sunm += arr[i];
}
avg = sum/arr.length;
for(int i = 0;i< arr.length;i++){
for(int j=i; j<arr.length;j++){
if(data2[i]>data2[j]){
//冒泡排序先换arr元素的位置
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
//换对应的data2元素的位置,
//目的是始终使arr和data2 的元素的对应位置是一样的
int r = data2[i];
data2[i] = data2[j];
data2[j] = r;
}
}
}
System.out.println("平均值:"+avg);
System.out.println("三个数:"+arr[0]+" "+arr[1]+" "+arr[2]);
}
}
运行结果:
平均值:47.0
三个数:45 56 32