我的问题与计算数组中的整数有关。到目前为止,这是我的代码。
import java.util.Scanner;
public class Frequency {
public static void main(String[]args) {
Scanner kbd = new Scanner(System.in);
System.out.print("enter numbers: ");
int[] arr = new int[51];
for(int i = 0; true; i++) {
int in = kbd.nextInt();
if(in < 0)break;
else if(in > 50)break;
else arr[in]++;
}
for(int i = 0; i < arr.length; i++) {
System.out.println(i+" occurrences of "+arr[i]);
}
}
}
问题输出的方式是正确的,除了我需要某种方法来过滤掉所有出现0的数字,这样输出中只显示输入中的数字;而不是0到50之间的每个数字。
答案 0 :(得分:4)
您已经编写了if
语句,以便在用户输入负数时停止第一个循环。只需为第二个循环写相同的东西:
for(int i = 0; i < arr.length; i++) {
if (arr[i] > 0) {
System.out.println(arr[i]+" occurrences of "+i);
}
}
旁注:我还换了arr[i]
和i
答案 1 :(得分:0)
for(int i = 0; i < arr.length; i++) {
if(!(i==0 || i%10==0) && arr[i]!=0)
System.out.println(i+" occurrences of "+arr[i]);
}