编写一个接受用户100个整数的Java应用程序。输入应在1-200范围内。程序将显示以下类别中的整数数:
1-10
11-20
21-30
31-40
…
…
191-200
您的程序应该有一个void方法来执行这些任务。它有一个参数,以
int[]
的形式表示输入值,如下所示:
void displayStatistics( int[] input)
请大家帮帮我。我不知道下一步该做什么。
代码是这样的:
public static ArrayList<Integer> array = new ArrayList<Integer>();
public static Scanner reader = new Scanner(System.in);
public static void main (String[] args)
{
System.out.println("Enter number and 0 for stop.");
int enter = reader.nextInt();
while ( enter != 0)
{
if ((enter >= 1) && (enter <= 200))
{
array.add(enter);
}
else
{
System.out.println("Number range is 1-200");
}
enter= reader.nextInt();
}
void displayStatistics(int[] input)
{
for (int i = 1; i <= 20; i++)
{
int Nombor1 = ((i-1) * 10) + 1;
int Nombor2 = (i * 10);
int count = 0;
System.out.print((Number1 + "-" + Number2 +" ===>"));
for (int number : array)
{
if ((number >= Number1) && (number <= Number2))
{
count++;
}
}
for (int x = 0; x < count; x++)
System.out.print(x+1);
System.out.println();
}
}
}
答案 0 :(得分:1)
我会确保您的程序编译并测试它以查看它的作用。如果使用IDE,它将显示代码是否在您键入时进行编译,并可帮助您格式化代码。
如果它没有按照您的预期进行操作,您可以使用调试器逐步完成代码,找出它为什么会这样做。
为了您的兴趣,并且您有一个似乎有效的方法,以下是我将如何编写displayStatistics
static void displayStatistics(int[] ints) {
int[] count = new int[20];
for (int i : ints) count[(i - 1) / 10]++;
for (int i = 0; i < count.length; i++)
System.out.printf("%d to %d : %d%n", i * 10 + 1, i * 10 + 10, count[i]);
}
答案 1 :(得分:0)
好的,对你展示的代码有一些评论。
nombor1
,而不是Nombor1
。println
count
后,没有必要循环显示此值。答案 2 :(得分:0)
你忘了关闭主要方法。
然后你需要调用displaystatistics方法。 您可以将该方法更改为静态方法,或者创建类的新实例。
无论哪种方式,您都不需要将变量“input []”传递给它,因为您声明“array”是静态的。
然后,只显示结果。
我稍微纠正了你的程序,所以这应该有效,但这不是最有效的方法。
public static ArrayList<Integer> array = new ArrayList<Integer>();
public static Scanner reader = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Masukkan nombor antara 1-200 dan 0 untuk berhenti.");
int masuk = reader.nextInt();
while ( masuk != 0 ) {
if ( (masuk >= 1) && (masuk <= 200) ) {
array.add(masuk);
}
else {
System.out.println("Nombor mesti antara 1-200");
}
masuk = reader.nextInt();
}
displayStatistics();
}
static void displayStatistics() {
for (int i = 1; i <= 20; i++) {
int Nombor1 = ((i - 1) * 10) + 1;
int Nombor2 = (i * 10);
int count = 0;
System.out.print((Nombor1 + "-" + Nombor2 + " ===>"));
for (int nombor : array) {
if ( (nombor >= Nombor1) && (nombor <= Nombor2) ) {
count++;
}
}
/*for (int x = 0; x < count; x++) {
System.out.print(x + 1);
}*/
System.out.print(count);
count = 0;
System.out.println();
}
}