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

求最小值时为什么用min可以用nums[0]求出来的值不对啊

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


正在回答

1 回答

你最小值是赋给min它才代表最小值 ,你求average的代码也错了,你那求出来是取整了应该这样我觉得:avg=(sum/1.0)/nums.length;

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

夜舞天0 提问者

那为什么求max的时候可以啊
2016-05-21 回复 有任何疑惑可以回复我~
#2

慕粉3395070 回复 夜舞天0 提问者

你想想for语句执行完之后。意思是你想想他最后一次执行的是什么?是20<61,符合你写的if(num[i]<num[0])所以输出的肯定会是min=20,二最大值可以是因为循环的最后一次20是比61小的不符合你写的if(nums[i]>nums[0]),所以应该把nums[0]分别改为max和min
2016-05-22 回复 有任何疑惑可以回复我~
#3

夜舞天0 提问者

谢谢,明白了
2016-05-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求最小值时为什么用min可以用nums[0]求出来的值不对啊

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

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

帮助反馈 APP下载

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

公众号

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