Java 用数组限制我的输出
我的问题与数组中的整数计数有关。这是到目前为止我的代码Java 用数组限制我的输出,java,arrays,Java,Arrays,我的问题与数组中的整数计数有关。这是到目前为止我的代码 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
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]);
}
}
}
import java.util.Scanner;
公共类频率{
公共静态void main(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
系统输出打印(“输入数字:”);
int[]arr=新int[51];
对于(inti=0;true;i++){
int in=kbd.nextInt();
如果(in<0)中断;
否则,如果(在>50)中断;
else arr[in]++;
}
对于(int i=0;i
问题输出的方式是正确的,除了我需要某种方式过滤掉所有出现0的数字,以便只有输入中的数字显示在输出中;而不是0到50之间的每个数字。您已经编写了一个
if
语句,当用户输入负数时停止第一个循环。只需为第二个循环编写相同的内容:
for(int i = 0; i < arr.length; i++) {
if (arr[i] > 0) {
System.out.println(arr[i]+" occurrences of "+i);
}
}
for(inti=0;i0){
System.out.println(arr[i]+“+i”的出现次数);
}
}
旁注:我还交换了
arr[I]
和I
您已经编写了if
语句,当用户输入负数时停止第一个循环。只需为第二个循环编写相同的内容:
for(int i = 0; i < arr.length; i++) {
if (arr[i] > 0) {
System.out.println(arr[i]+" occurrences of "+i);
}
}
for(inti=0;i0){
System.out.println(arr[i]+“+i”的出现次数);
}
}
旁注:我还将arr[I]
和I
替换为(int I=0;I
用于(int i=0;i
所以您需要跳过0
、打印1-9
、跳过10
、打印11-19
,等等?@nhgrif OP为0到49之间的数字保存一组计数器。看起来他/她想打印计数器不是0的数字。是的,我在重读问题后正要删除我的评论。所以你需要跳过0
,打印1-9
,跳过10
,打印11-19
,等等。@nhgrif OP为0到49之间的数字保留一个计数器数组。看起来他/她想打印计数器不是0的数字。是的,我刚想在重读问题后删除我的评论。我想OP想知道原始数组是否包含I
,而不是arr[I]>0
。当用户键入一个数字时,他显然是在递增arr[in]
。因此,arr[i]=j
意味着j
出现i
。我遗漏了什么吗?不,是我遗漏了arr[in]+
行,给自己造成了各种各样的困惑。抱歉。我想OP想知道原始数组是否包含I
,而不是arr[I]>0
。当用户键入一个数字时,他显然是在递增arr[in]
。因此,arr[i]=j
意味着j
出现i
。我遗漏了什么吗?不,是我遗漏了arr[in]+
行,给自己造成了各种各样的困惑。对不起。