zoukankan      html  css  js  c++  java
  • 数组中的最小值为什么总是0

    下面程序运行为什么出现的最值中为什么最小值总是0?

    这是一个来自论坛的问题,在此借助其代码分析此现象

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Compare {
    	public static void main(String[] args) {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		int[] a = new int[3];
    		int min = a[0];
    		int max = a[0];
    
    		for (int i = 0; i < a.length; i++) {
    			try {
    				System.out.print("请输入第" + (i + 1) + "个数:");
    				a[i] = Integer.parseInt(br.readLine());
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    
    		for (int i = 0; i < a.length; i++) {
    			if (a[i] > max) {
    				max = a[i];
    			}
    
    			if (a[i] < min) {
    				min = a[i];
    			}
    		}
    
    		System.out.println("最大值为:" + max + "
    最小值为:" + min);
    	}
    }
    解答:

    因为min、max在赋初值的时候并未引用数组内元素进行赋值(空),而是使用了一个空数组的元素为其赋值,int型数组的元素默认值都为0

    所以当操作者输入数字全部都是正数的时候最小值总是0,当出入的值全部为负数的时候就将会得到最大值为0,要是出入的值有正、有负,那么将隐藏此问题的产生。

    用心-细心-专心-决心 学习就像爬大山,一步一步向前走 -态度决定高度-
  • 相关阅读:
    JZ-C-36
    JZ-C-35
    JZ-C-34
    JZ-C-33
    JZ-C-32
    JZ-C-31
    JZ-C-30
    JZ-C-29
    JZ-C-28
    JZ-C-27
  • 原文地址:https://www.cnblogs.com/xianyou-liang/p/8503353.html
Copyright © 2011-2022 走看看