Java语言怎么不用循环给输入的3个数字排序?用if语句写写不出来了,谁能告诉我思路是什么呢?
参考代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字:");
int num1 = scanner.nextInt();
System.out.print("请输入第二个数字:");
int num2 = scanner.nextInt();
System.out.print("请输入第三个数字:");
int num3 = scanner.nextInt();
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
if (num2 > num3) {
int temp = num2;
num2 = num3;
num3 = temp;
}
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
System.out.println("排序结果:");
System.out.println(num1 + " " + num2 + " " + num3);
}
}
【以下回答由 GPT 生成】
思路:
首先,我们可以利用if语句和比较运算符来比较三个数字的大小。我们可以假设第一个数字为最小值,然后依次与第二个和第三个数字进行比较,如果发现一个数字比假设的最小值更小,则更新最小值。然后我们再进行第二轮比较,将第二个数字与第三个数字进行比较,同样更新最小值。
代码示例:
import java.util.Scanner;
public class SortThreeNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字: ");
int num1 = scanner.nextInt();
System.out.print("请输入第二个数字: ");
int num2 = scanner.nextInt();
System.out.print("请输入第三个数字: ");
int num3 = scanner.nextInt();
int min = num1; // 假设第一个数字为最小值
// 比较第二个数字与最小值
if (num2 < min) {
min = num2; // 更新最小值
}
// 比较第三个数字与最小值
if (num3 < min) {
min = num3; // 更新最小值
}
// 打印出最小值
System.out.println("最小值为: " + min);
}
}
此代码使用Scanner类从命令行中获取输入的三个数字,然后利用if语句和比较运算符找出最小值,最后打印出最小值。这个示例代码并没有对数字进行完整的排序,只是找出了最小值。如果你想对三个数字进行完整的排序,你需要使用if语句进行一系列的比较并进行相应的交换操作。
【相关推荐】
比较两次就行了呀
int a;
int b;
int c;
// ...
int maxAB = a > b ? a : b; // 先得到 a 和 b 的最大值
int max = maxAB > c ? maxAB : c; // 再用 a 和 b 的最大值和 c 比较