我在使用这个程序时遇到了问题,它要求我:编写一个程序,生成 0-9 之间的 10 个整数并显示每个数字的计数。我在计算每个个位数的计数时遇到问题。看来我的程序没有正确添加计数器。这是我的程序:
我尝试阅读其他代码来帮助修复它,但没有任何效果。
import java.util.*;
import java.util.Arrays;
public class CountsArray {
public static void main(String[] args) {
int[] list = new int[10];
int[] num = new int[10];
for(int i = 0; i< list.length;i++) {
list[i] = (int)(Math.random()*10+1);
}
for(int i = 0; i< list.length;i++) {
System.out.print(list[i] + " ");
}
System.out.println();
int temp = 0;
for(int i = 0; i <num.length;i++) {
temp = num[i];
list[temp]++;
}
for(int i = 0;i < list.length;i++) {
if(list[i]>0 && list[i]==1) {
System.out.printf("%d occurs %d time\n",i, list[i]);
}
else if(list[i] >= 2) {
System.out.printf("%d occurs %d times \n", i, num);
}
}
}}
如果随机数是:1 1 2 2 2 3 3 输出应该是 1 出现 2 次、2 出现 3 次、3 出现 2 次。 有人能指出我正确的方向吗?
最佳答案
你可以这样做,首先因为随机整数是 0 到 9,所以将 1 添加到 Math.random() 也会产生 10,根据问题,这将是错误的 然后在遍历列表时增加 num 中的位置(也就是说,如果在列表中遇到 3,则将 num[3] 加一,因为 3 的计数现在为 1),然后在 num[i]>0 时打印 num,因为可能存在根本没有出现过的整数。
`int[] list = new int[10];
int[] num = new int[10];
for(int i = 0; i< list.length;i++) {
list[i] = (int)(Math.random()*10);
}
for(int i = 0; i< list.length;i++) {
System.out.print(list[i] + " ");
}
System.out.println();
for (int i = 0; i < list.length; i++) {
++num[list[i]];
}
for (int i = 0; i < num.length; i++) {
if(num[i]>0){
System.out.printf("%d occurs %d times\n",i,num[i]);
}
}`
关于java - 计数出现次数未添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638214/