Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:为随机生成并放置在数组中的整数创建频率表_Java_Arrays_Integer_Frequency - Fatal编程技术网

Java:为随机生成并放置在数组中的整数创建频率表

Java:为随机生成并放置在数组中的整数创建频率表,java,arrays,integer,frequency,Java,Arrays,Integer,Frequency,谢谢大家!我尽我所知清理了代码,并决定将完成的代码与示例输出一起粘贴,以供其他学生查看,以及他们是否选择使用部分代码 public class Arrays { public static void main(String args[]) { //Assigning the array length according to the user's input int N = Integer.parseInt(args[0]); int randoms[] = new

谢谢大家!我尽我所知清理了代码,并决定将完成的代码与示例输出一起粘贴,以供其他学生查看,以及他们是否选择使用部分代码

public class Arrays {
  public static void main(String args[]) {
    //Assigning the array length according to the user's input
    int N = Integer.parseInt(args[0]);
    int randoms[] = new int[N];
    //Filling the array with random integer values
    System.out.println("The numbers generated are: ");
    for (int i=0; i<randoms.length; i++) {
      randoms[i] = (int) (Math.random()*10 + 1);
      System.out.print(randoms[i] + " ");
    }
    double sum = 0.0;
    for (int i=0; i<randoms.length; i++) {
      sum += randoms[i];
    }
    System.out.println("\nThe average of the values is " + (sum/N));
    int freq[] = new int[11];
    for (int i=0; i<randoms.length; i++){
      freq[randoms[i]] += 1; 
    } 
    System.out.println("Number\tFreq");
    for (int i=1; i<freq.length; i++){
      System.out.println(i + "\t" + freq[i]);
    }
  }
}

正如阿德里安指出的,你现在只数一个。我会有点棘手,而不是对每一个进行检查,只是简单地使用随机整数为增量选择正确的元素

for (int i=0; i<randoms.length; i++){
    freq[randoms[i]-1] += 1; 
 } 

for(inti=0;i感谢您的帮助!在查看代码足够长的时间后,我意识到在我的输出中使用了

for (int i=0; i<randoms.length; i++){
      System.out.println(randoms[i] + " appeared " + freq[i] + " times");

for(int i=0;事实上,您只计算了1s……问题在于您的输出。您应该在单独的循环中进行此操作。我为输出创建了另一个循环,并得到了类似的结果。我认为频率值没有正确递增,或者根本没有变化。谢谢!我会尝试一下。
for (int i=0; i<randoms.length; i++){
      System.out.println(randoms[i] + " appeared " + freq[i] + " times");
for (int i=0; i<randoms.length; i++){
      System.out.println(randoms[i] + " appeared " + freq[randoms[i]] + " times");