为了账号安全,请及时绑定邮箱和手机立即绑定

最大值小值都是20???谢谢哦

package com.doit;
public class It { 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的值 
      do{max=nums[i];}while(nums[i]>max);     
      // 如果当前值小于min,则替换min的值 
      do{min=nums[i];}while(nums[i]<min);  
       // 累加求和      
      sum=sum+nums[i];  }  
      // 求平均值 
      avg=sum/nums.length; 
      System.out.println("数组中的最大值:" + max);
        System.out.println("数组中的最小值:" + min);
          System.out.println("数组中的平均值:" + avg); 
          } }

为啥我的最大值和最小值输出的结果都是20呀?循环哪里出问题了呀?求大神救助

正在回答

2 回答

其实你如果一定要用while也不是不可以,可是你却偏偏用了do-while,在循环开始前都会先执行一次,所以你的最大值跟最小值才会都等于数组的最后一个。

0 回复 有任何疑惑可以回复我~

do{max=nums[i];}while(nums[i]>max);

do{min=nums[i];}while(nums[i]<min); 

这里写if。写循环干嘛。。

分别写成:

if (max < nums[i]) max = nums[i];

if (min > nums[i]) min = nums[i];

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

最大值小值都是20???谢谢哦

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号