问答详情
源自:6-6 编程练习

这个交换和老师的答案那个好点 有什么不同呢

public class HelloWorld {

    

    public static void main(String[] args) {

        

// 定义一个整型数组,并赋初值

int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

        

int max = nums[0]; // 假定最大值为数组中的第一个元素

int min = nums[0]; // 假定最小值为数组中的第一个元素

double sum = 0;// 累加值

double avg = 0;// 平均值

        

for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素

        // 如果当前值大于max,则替换max的值

if(nums[i]>max){

   int t=nums[i];

   nums[i]=max;

   max=t;

}else if(nums[i]<min){

   int z=nums[i];

   nums[i]=min;

   min=z;

}

        

        

        // 如果当前值小于min,则替换min的值

        

        

        sum+=nums[i];

        // 累加求和

        

        

}

        

        // 求平均值

        avg=sum/nums.length;

        

System.out.println("数组中的最大值:" + max);

System.out.println("数组中的最小值:" + min);

System.out.println("数组中的平均值:" + avg);

}

}


提问者:qq_Sun丶_2 2017-07-25 16:31

个回答

  • 不进百度不改网名
    2017-07-25 17:03:03

    你的更麻烦一点,老师求最大最小都是直接num[i]赋值给max跟min,你多了一个步骤。老师代码在哪。。。

  • 叶叶叶_
    2017-07-25 16:50:00

    你的这个交换改变了数组里的值,这个题只是要找出数组中的最大值和最小值,并不是要你对数组进行排序。并且像你这样改变数组以后,找最大的时候改变一次,最小的时候又改变一次,难免会出现问题。