文章目录
一、准备工作
定义从控制台获取的三个整数以及一个临时变量,在交换过程中用于存储其中一个变量的值。
int num1, num2, num3,temp;
Scanner scanner = new Scanner(System.in);
System.out.println("请任意输入三个整数:");
num1 = scanner.nextInt();
num2 = scanner.nextInt();
num3 = scanner.nextInt();
二、用三种方法对三个数字的大小进行比较
1.分别找出三个数中的最大值、最小值、中间值
int max, min, mid;
max = min = num1;
if (max < num2) max = num2;
if (max < num3) max = num3;
System.out.println("最大数为" + max);
if (min > num2) min = num2;
if (min > num3) min = num3;
System.out.println("最小数为" + min);
mid = num1 + num2 + num3 - max - min;
System.out.println("中间数为" + mid);
1.准备工作:定义最大值和最小值,将num1分别赋给最大值max和最小值min;
2.寻找最大值和最小值:利用选择结构将max(min)分别与num2、num3比较,如果num2、num3大于max(小于min),则进行交换;
3.寻找中间值:只需要将num1、2、3相加然后减去min、max之和即可。
2.输入任意三个数,然后从大到小排序之后输出a、b、c (枚举法)
if (num1 > num2 && num1 > num3) {
if (num2 > num3) {
System.out.println(num1 + ">" + num2 + ">" + num3);
} else {
System.out.println(num1 + ">" + num3 + ">" + num2);
}
}
if (num2 > num1 && num2 > num3) {
if (num1 > num3) {
System.out.println(num2 + ">" + num1 + ">" + num3);
} else {
System.out.println(num2 + ">" + num3 + ">" + num1);
}
}
if (num3 > num2 && num3 > num1) {
if (num2 > num1) {
System.out.println(num3 + ">" + num2 + ">" + num1);
} else {
System.out.println(num3 + ">" + num1 + ">" + num2);
}
}
1.首先介绍三个大if:用于讨论num1最大、num2最大、num3最大;
2.介绍里面的双分支if:用于比较两外两个数的大小关系。
感觉我这个方法不是很好,小伙伴们可以给我看看你们的想法
3.输入任意三个数,然后数字由小到大交换后,逐个输出
第二个案例只需要从大到小输出,不需要交换值。而这个案例需要保证输出时效果为num1>num2>num3,即三个数可能与它原来的值不同。
if (num1 > num2) {
temp = num1;
num1 = num2;
num2 = temp;
}
if (num1 > num3) {
temp = num1;
num1 = num3;
num3 = temp;//num1为最小值
}
if (num2 > num3) {
temp = num2;
num2 = num3;
num3 = temp;
}
System.out.println(num1 + "<" + num2 + "<" + num3);
}
1.前两个if:保证了最大值存到num1里
2.第三个if:保证了num2为中间值、num3为最小值;
3.最后:输出num1 < num2 < num3即可
三、完整代码展示
package javabase;
import java.util.Scanner;
public class StudyCode {
public static void main(String[] args) {
int num1, num2, num3, temp;
Scanner scanner = new Scanner(System.in);
System.out.println("请任意输入三个整数:");
num1 = scanner.nextInt();
num2 = scanner.nextInt();
num3 = scanner.nextInt();
// 1.分别找出三个数中的最大值、最小值、中间值
int max, min, mid;
max = min = num1;
if (max < num2) max = num2;
if (max < num3) max = num3;
System.out.println("最大数为" + max);
if (min > num2) min = num2;
if (min > num3) min = num3;
System.out.println("最小数为" + min);
mid = num1 + num2 + num3 - max - min;
System.out.println("中间数为" + mid);
// 2.输入任意三个数,然后从大到小排序之后输出a、b、c(枚举法)
if (num1 > num2 && num1 > num3) {
if (num2 > num3) {
System.out.println(num1 + ">" + num2 + ">" + num3);
} else {
System.out.println(num1 + ">" + num3 + ">" + num2);
}
}
if (num2 > num1 && num2 > num3) {
if (num1 > num3) {
System.out.println(num2 + ">" + num1 + ">" + num3);
} else {
System.out.println(num2 + ">" + num3 + ">" + num1);
}
}
if (num3 > num2 && num3 > num1) {
if (num2 > num1) {
System.out.println(num3 + ">" + num2 + ">" + num1);
} else {
System.out.println(num3 + ">" + num1 + ">" + num2);
}
}
// 3.输入任意三个数,然后数字由小到大交换后,逐个输出
if (num1 > num2) {
temp = num1;
num1 = num2;
num2 = temp;
}
if (num1 > num3) {
temp = num1;
num1 = num3;
num3 = temp;//num1为最小值
}
if (num2 > num3) {
temp = num2;
num2 = num3;
num3 = temp;
}
System.out.println(num1 + "<" + num2 + "<" + num3);
}
}
总结
虽然案例比较简单,但是我认为动手做一遍才是做重要的!
254

被折叠的 条评论
为什么被折叠?



