为什么我的代码在找到数组中最常见的整数后会输出额外的"0"?

  • 本文关键字:整数 输出 常见 代码 数组 java
  • 更新时间 :
  • 英文 :


输入整数的示例为:5 9 2 2 1 4 5 5-1,我的代码输出为"0";5 0";。在这个示例数组中,我只需要它显示";5〃;。您可以尝试使用任何整数输入组合,以-1结束输入,您将获得最频繁的零整数。你知道我的代码为什么会这样做吗?

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in); 
int[] b = new int[21];
for (int i = 0; i < b.length; ++i) { //integer input from user
b[i] = scnr.nextInt();
if (b[i] == -1) {    //array input stops when input is -1
break;
}
}
int maxcount = 0;
int element_having_max_freq;
for (int i = 0; i < b.length; ++i) {
int count = 0;
for (int j = 0; j < b.length; ++j) {
if (b[i] == b[j]) {
count = count + 1;
}
}
if (count > maxcount) {
maxcount = count;
element_having_max_freq = b[i];
System.out.println(element_having_max_freq+ " ");
}
}
}
}

您的数组大小为21,初始化为全零。所有没有用用户输入覆盖的数字都将保持为零,这意味着在测试输入5 9 2 2 1 4 5 5 -1的情况下,您将获得另外12个零。

尝试在解析用户输入的代码部分之后放置断点,并查看b

最新更新