Java 如何修改此代码以按顺序打印3个整数?
我有一个打印3个整数之间的最大整数的代码,我想对这3个整数进行排序,比如numJava 如何修改此代码以按顺序打印3个整数?,java,Java,我有一个打印3个整数之间的最大整数的代码,我想对这3个整数进行排序,比如num来自System.in的第三个值 换句话说,您只对较高的值进行排序 if(num1>num) { big=num1; } 将此更改为: if(num1>num) { big=num1; } else { // swap num1 and num int tmp = num; num = num1; num1 = num; } 也改变 if(num2>
import java.util.Scanner;
public class digits {
public static void main(String[] args) {
int num = 0;
int num1 = 0;
int num2 = 0;
int big = 0;
System.out.println("Please insert 3 numbers: ");
Scanner number = new Scanner(System.in);
if (number.hasNextInt()) {
num = number.nextInt();
big = num;
}
if (number.hasNextInt()) {
num1 = number.nextInt();
if (num1 > num) {
big = num1;
}
}
if (number.hasNextInt()) {
num2 = number.nextInt();
if (num2 > num && num2 > num1) {
big = num2;
}
System.out.println(big + ">" + num1 + ">" + num);
} else {
System.out.println("Error: Invalid Value.");
}
}
}
看看你的代码:你选择了三个大数字中最大的一个,但是你从来没有改变num1或num。 因此,您的结果将始终是:更大的数字>来自System.in的第二个值>来自System.in的第三个值 换句话说,您只对较高的值进行排序
if(num1>num)
{
big=num1;
}
将此更改为:
if(num1>num)
{
big=num1;
}
else
{
// swap num1 and num
int tmp = num;
num = num1;
num1 = num;
}
也改变
if(num2>num && num2>num1)
{
big=num2;
}
到
试试下面的代码
public static void main(String[] args) {
System.out.println("Please insert 3 numbers: ");
Scanner number = new Scanner(System.in);
Integer[] input = new Integer[3];
int i = 0;
while (i != 3) {
input[i++] = number.nextInt();
}
number.close();
Arrays.sort(input, Collections.reverseOrder());
StringBuffer sb = new StringBuffer();
for (Integer a : input) {
sb.append(a).append(">");
}
System.out.println(sb.substring(0, sb.length() - 1));
}
像这样的东西应该有用
import java.util.Scanner;
public class digits {
public static void main(String[] args)
{
int[] nums = new int[3];
int k = 0;
System.out.println("Please insert 3 numbers: ");
Scanner number = new Scanner (System.in);
while (number.hasNext() && k < 3) {
int i = 0;
try {
i = Integer.parseInt(number.nextLine());
}
catch (NumberFormatException e) {
System.out.println("Error: Invalid Value.");
}
nums[k] = i;
k++;
}
Arrays.sort(nums);
System.out.println(nums[2]+ ">" +nums[1]+ ">" +nums[0]);
}
}
回头看看你的笔记,通读你的课本,然后开始写。稍后,如果你有关于某件事的具体问题,回来问,人们会更愿意帮助你。我们不会帮你做作业,你能写下你的说明书吗。如果可以使用内置排序算法,则可以使用它们。或者您可以编写排序算法。但是我们需要知道解决这个问题的限制条件是什么。我编辑了这篇文章,如果我输入30作为num,25作为num1,20作为num2,它会打印30>25>30,所以有一个问题,我没有找到答案show我能找到第二高的数字吗?
import java.util.Scanner;
public class digits {
public static void main(String[] args)
{
int[] nums = new int[3];
int k = 0;
System.out.println("Please insert 3 numbers: ");
Scanner number = new Scanner (System.in);
while (number.hasNext() && k < 3) {
int i = 0;
try {
i = Integer.parseInt(number.nextLine());
}
catch (NumberFormatException e) {
System.out.println("Error: Invalid Value.");
}
nums[k] = i;
k++;
}
Arrays.sort(nums);
System.out.println(nums[2]+ ">" +nums[1]+ ">" +nums[0]);
}
}