我有这个代码,但它不能计算分割元素的频率,而是继续计算索引星的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,
答案 0 :(得分:0)
你确实有分割元素的频率,但不要嵌套你的循环。
第一个得分是87,freq数组的第一个打印有&#34; 8&#34;计数为1的元素,所有其他元素为0.第二个得分为67,第二个打印的频率数组为&#34; 6&#34;计数为1和&#34; 8&#34;如果计数为1,则所有其他元素均为0.依此类推。
首先循环分数设置分频,然后循环频率并打印一次。