在java中计算数字和分配频率

时间:2016-12-27 17:23:35

标签: java arrays

我有这个代码,但它不能计算分割元素的频率,而是继续计算索引星的100。我怎么能得到分割元素的频率。

public class Grade {

public static void main(String[] args) {
    int[] grade = {87, 68, 94, 100, 83, 78, 85, 96, 76, 87};
    int[] frequency = new int[11];  

    for(int count=0; count< grade.length; count++) {
        int d1 = grade[count]/10;
         ++frequency[d1];
        for(int star=1; star<frequency.length; star++) {        
            System.out.printf("%4d%10d%n", star, frequency[star]);
        }
    }
}

这是星和频率[星]

的结果
   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     0,
   7   -      0,
   8  -       1,
   9 -        0,
  10-         0,

   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      0,
   8  -       1,
   9 -        0,
  10-         0,

   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      0,
   8  -       1,
   9 -        1,
  10-         0,

   1     -    0,
   2    -     0,
   3   -      0,
   4  -       0,
   5 -        0,
   6   -      1,
   7  -       0,
   8    -     1,
   9 -        1,
  10-         1,

   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      0,
   8  -       2,
   9 -        1,
  10-         1,

   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      1,
   8  -       2,
   9 -        1,
  10-         1,

   1        - 0,
   2         -0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      1,
   8  -       3,
   9 -        1,
  10-         1,

   1       -  0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6    -     1,
   7   -      1,
   8  -       3,
   9 -        2,
  10-         1,

   1      -   0,
   2     -    0,
   3    -     0,
   4        - 0,
   5       -  0,
   6      -   1,
   7     -    2,
   8    -     3,
   9   -      2,
  10  -       1,

   1         -0,
   2        - 0,
   3       -  0,
   4      -   0,
   5     -    0,
   6        - 1,
   7       -  2,
   8       -  4,
   9      -   2,
  10     -    1,

1 个答案:

答案 0 :(得分:0)

你确实有分割元素的频率,但不要嵌套你的循环。

第一个得分是87,freq数组的第一个打印有&#34; 8&#34;计数为1的元素,所有其他元素为0.第二个得分为67,第二个打印的频率数组为&#34; 6&#34;计数为1和&#34; 8&#34;如果计数为1,则所有其他元素均为0.依此类推。

首先循环分数设置分频,然后循环频率并打印一次。