【问题标题】:Why am I not getting the minimum value in an array JAVA?为什么我没有得到数组 JAVA 中的最小值?
【发布时间】:2021-12-07 21:23:11
【问题描述】:
import java.util.*;
public static void main(String[] args) {
    
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter the size ??");
    int n = sc.nextInt();
    int[] marks = new int[n + 1];
    
    for (int i = 0; i < n; i++) {
        System.out.println("Enter " + i + " number ??");
        marks[i] = sc.nextInt();
    }
    
    System.out.println("The  following numbers are : ");
    for (int j = 0; j < marks.length - 1; j++) {
        System.out.println(marks[j] + " ");
    }
    
    int max = marks[0];
    int min = marks[0];
    int s = marks.length;
    for (int i = 0; i < s; i++) {
        if (marks[i] > max) {
            max = marks[i];
        }
        if (marks[i] < min) {
            min = marks[i];
        }
    }
    
    System.out.println("Max is " + max + " Min is " + min);
}

输出:

Enter the size ??2
Enter 0 number ??
56
Enter 1 number ??
56
The  following numbers are : 
56 
56 
Max is 56 Min is 0

【问题讨论】:

  • 因为你有int[] marks = new int[n+1];。它应该只是new int[n];+1 在数组末尾添加了一个额外的 0,并且您没有用用户输入填充该插槽。因此,如果用户总是输入大于零的数字,则最后一个元素将是最小值。
  • 您创建了一个比您需要的更大的数组。最后一项始终是0

标签: java arrays min


【解决方案1】:

上例中标记数组的大小为3

 int[] marks = new int[n + 1];

设总分数为 (n) : 2

我们正在创建大小为 3 的数组。

java 中 int 基元的默认值为 0

marks 数组的大小为 3

{56, 56, 0}

按照逻辑,这三个元素中的最小值为0

【讨论】:

    【解决方案2】:

    您好,欢迎来到 StackOverflow。下次,如果您跳入互联网寻求帮助,请尝试这种方法。它会更快地解决您的问题。

    for (int i = 0; i < s; i++) {
        System.out.println("DEBUG: number in index " + i + " is " + marks[i]);
    
        if (marks[i] > max) {
            System.out.println("DEBUG: number is greater than current max " + max);
    
            max = marks[i];
        }
        if (marks[i] < min) {
            System.out.println("DEBUG: number is smaller than current min " + min);
    
            min = marks[i];
        }
    }
    

    此过程称为“调试”。可以通过像上面那样添加虚假的日志记录或使用调试器单步执行代码来完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多