java - 如何用java完成频数表

标签 java frequency

我的 java 代码遇到问题。我应该在循环中输入“等级”(我的退出条件是-1)并将其放入频率表中,问题是我收到此错误:

java.lang.ArrayIndexOutOfBoundsException: -1
    at MakeUp.main(MakeUp.java:36)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at      edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267)

这是我的代码:

class MakeUp
{
public static void main (String[] args)
{
  int grade[];
  int freq[]=new int [50];
  grade= new int [50];
  int count=0,mark;

  System.out.println("Enter the grades of the class");
  System.out.println("Just enter -1 to end the input");


  do
      { 
    System.out.println("Grade " +(count+1)+":");
    mark=In.getInt();
    if (mark>=0)
    {
     grade[count]=mark; 
     count=count+1;
    }
  }
  while(mark!=-1);


     for (int i=0; i < grade.length;i++)   
      { 
     grade[i]=mark;
   }

  if (mark==-1)
  {
  for (int i=0; i<grade.length;i++)
  { 
   ++freq[grade[i]];
  }
  System.out.println("Results"); 

  for (int i=0; i<grade.length;i++)
  {
    System.out.println("Grade " +(i+1) + " = " +grade[i]);
  }

System.out.println("Face\tFrequency\"");
System.out.println("=====================");
  for (int i = 0; i<freq.length; i++)
  {
  System.out.println((i+1)+"\t"+freq[i]); 
  }
  }  
  }  
 }

我不确定问题是什么,我尝试更改有问题的第 35 行,但无济于事。任何帮助都感激不尽。谢谢

最佳答案

以下循环使用 -1 值填充您的 grade 数组(因为 mark = -1,这是 do 的退出条件-之前执行过的while循环):

for (int i = 0; i < grade.length; i++) {
            grade[i] = mark;
        }

此处任何 grade[i] = -1 ,因此您尝试从 freqs 数组访问索引 -1 :

++freq[grade[i]];

关于java - 如何用java完成频数表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225693/

相关文章:

windows-phone-7 - Windows Phone 7 麦克风可以检测 18k-19kHz 范围内的频率吗?

r - 从 R 中的直方图获取频率值

Java - Eclipse - 从文件中获取名称和数字,按字母顺序排序到新文件中,按数字排序到新文件中

java - 每个集群一个套接字连接

java - 如何使用 Synopsys detect 扫描 Java Maven 项目

安卓实时数据 : Not receiving all notifications

c - Auriotouch,从频率FFT获取音符

java - 如何从外部不相关的代码读取正在运行的 Swing GUI 的 TextField 或 Cell 值?

java - 在Java中我可以要求系统告诉我文件的字符集吗?

objective-c - 识别低频噪声中短促的高频声音(objc/c)