如何找到最大数量和出现次数
How to find max number and occurrences
所以我是第一次学习 java,似乎不知道如何正确设置 while 循环。
我的作业是编写一个程序来读取整数,找到其中的最大值,并计算它的出现次数。
但我有两个问题和一些障碍。我不允许使用数组或列表,因为我们还没有学过,那么你如何在同一行上从用户那里获取多个输入。到目前为止,我发布了我能发布的内容。我也遇到了让循环工作的问题。我不确定如何设置 while 条件不等于来创建基本值。我试过如果用户输入是 0,我不能使用用户输入,因为它在 while 语句中。旁注我认为一开始甚至不需要循环来创建它,我不能只使用一连串的 if else 语句来完成它。
package myjavaprojects2;
import java.util.*;
public class Max_number_count {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int count = 0;
int max = 1;
System.out.print("Enter a Integer:");
int userInput = input.nextInt();
while ( userInput != 0) {
if (userInput > max) {
int temp = userInput;
userInput = max;
max = temp;
} else if (userInput == max) {
count++ ;
}
System.out.println("The max number is " + max );
System.out.println("The count is " + count );
}
}
}
So how do you take multiple inputs from the user on the same line .
您可以像在代码中一样使用扫描仪和 nextInput 方法。但是,由于 nextInt 一次只读取 1 个由白色分隔的值 space,因此您需要在 while 循环结束时重新分配 userInput 变量以更新当前处理值,如下所示。
int userInput = input.nextInt();
while ( userInput != 0) {
//all above logic
userInput = input.nextInt();
}
代码:-
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = 0, count = 0, num;
System.out.println("Enter numbers:-");
while ((num = sc.nextInt()) != 0) {
if (num > max) {
max = num;
count = 1;
} else if (num == max) {
count++;
}
}
System.out.println("\nCount of maximum number = "+count);
}
}
而且您不必使用 ArrayList 或 Array。继续输入数字,直到得到 0。
您可以用一个循环来实现它。这样做的传统简洁模式涉及这样一个事实,即分配解析为分配的值。因此,您的循环可以使用 (x = input.nextInt()) != 0
来终止(处理异常和非整数输入留作 reader 的练习)。请记住在 循环后显示最大值和计数 ,并在找到新的最大值时将计数重置为 1
。另外,我会将最大值默认为 Integer.MIN_VALUE
(而不是 1
)。这使得代码看起来像
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a Integer:");
int count = 0, max = Integer.MIN_VALUE, userInput;
while ((userInput = input.nextInt()) != 0) {
if (userInput > max) {
max = userInput;
count = 1;
} else if (userInput == max) {
count++;
}
}
System.out.println("The max number is " + max);
System.out.println("The count is " + count);
}
所以我是第一次学习 java,似乎不知道如何正确设置 while 循环。
我的作业是编写一个程序来读取整数,找到其中的最大值,并计算它的出现次数。
但我有两个问题和一些障碍。我不允许使用数组或列表,因为我们还没有学过,那么你如何在同一行上从用户那里获取多个输入。到目前为止,我发布了我能发布的内容。我也遇到了让循环工作的问题。我不确定如何设置 while 条件不等于来创建基本值。我试过如果用户输入是 0,我不能使用用户输入,因为它在 while 语句中。旁注我认为一开始甚至不需要循环来创建它,我不能只使用一连串的 if else 语句来完成它。
package myjavaprojects2;
import java.util.*;
public class Max_number_count {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int count = 0;
int max = 1;
System.out.print("Enter a Integer:");
int userInput = input.nextInt();
while ( userInput != 0) {
if (userInput > max) {
int temp = userInput;
userInput = max;
max = temp;
} else if (userInput == max) {
count++ ;
}
System.out.println("The max number is " + max );
System.out.println("The count is " + count );
}
}
}
So how do you take multiple inputs from the user on the same line .
您可以像在代码中一样使用扫描仪和 nextInput 方法。但是,由于 nextInt 一次只读取 1 个由白色分隔的值 space,因此您需要在 while 循环结束时重新分配 userInput 变量以更新当前处理值,如下所示。
int userInput = input.nextInt();
while ( userInput != 0) {
//all above logic
userInput = input.nextInt();
}
代码:-
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = 0, count = 0, num;
System.out.println("Enter numbers:-");
while ((num = sc.nextInt()) != 0) {
if (num > max) {
max = num;
count = 1;
} else if (num == max) {
count++;
}
}
System.out.println("\nCount of maximum number = "+count);
}
}
而且您不必使用 ArrayList 或 Array。继续输入数字,直到得到 0。
您可以用一个循环来实现它。这样做的传统简洁模式涉及这样一个事实,即分配解析为分配的值。因此,您的循环可以使用 (x = input.nextInt()) != 0
来终止(处理异常和非整数输入留作 reader 的练习)。请记住在 循环后显示最大值和计数 ,并在找到新的最大值时将计数重置为 1
。另外,我会将最大值默认为 Integer.MIN_VALUE
(而不是 1
)。这使得代码看起来像
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a Integer:");
int count = 0, max = Integer.MIN_VALUE, userInput;
while ((userInput = input.nextInt()) != 0) {
if (userInput > max) {
max = userInput;
count = 1;
} else if (userInput == max) {
count++;
}
}
System.out.println("The max number is " + max);
System.out.println("The count is " + count);
}