大神快看,运行结果只有最小值不对,一直是零。

 Scanner input=new Scanner(System.in);

       int[] nums = new int[3];

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

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

       double sum = 0;// 累加值

       double avg = 0;// 平均值

       for (int i = 0; i < nums.length; i++) {

       nums[i]=input.nextInt();

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

       if(nums[i]>max){

        max=nums[i];   

       }

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

       else if(nums[i]<min)

       {

           min=nums[i]; 

       }

       // 累加求和

       sum=sum+nums[i];

       }

       // 求平均值

      avg=sum/nums.length;

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

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

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

   }

}


潮男123
浏览 1594回答 3
3回答

guozhchun

// 还没有读取数据放入数组中就进行以下的操作,实际上相当于 int max = 0; int min = 0 // 这样如果读取的数都是大于0,那么最小值会一直是0,如果读取的数都小于0,那么最大值会一直为0 int max = nums[0]; // 假定最大值为数组中的第一个元素 int min  = nums[0]; // 假定最小值为数组中的第一个元素解决方法有两种:一是把最大值设得足够小,让所有读取的数都比它大,同时把最小值设得足够大,让所有读取的数都比它小。另一种方法是先读取所有的数,然后把第一个值赋给 min 和 max,然后重新用一个循环来比较得到结果

慕无忌3351045

int min  = nums[0]; 此时还未从键盘输入,所以nums数组中每一项都为初始化的值:0因为你的最小值min一开始就赋值为0了,你之后输入的数都大于0,所以最小值会一直为0呀
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java