需求:
- 过年了,输入三只猪的体重,判断那只最重,那只最轻 (你懂的)
- 输出三只猪的体重,并用文字告知那只最重
- 如果有相同的情况,请一并告知
用0和1来代表最重和最轻
第一只 | 第二只 | 第三只 | |
---|---|---|---|
最重/最轻 | |||
一样重 |
分析:
- 三只重量不同 // 直接输出:1,2,3
- 两只重量相同 //无序,但是要分情况:12,23,13
- 三只重量相同//直接输出:123
方法
-
先用三元运算符 <= 和 >= 求出最大值和最小值(里面包含相等情况);
-
两只相同的无序情况可以用 1 和 0 配合加法进行合并:int
A = a1 + a2 + a3; -
输出的字符为:
“三只最重的是: " + tempChar1 + “猪, " + “它的体重是” + maxW +” kg ”
tempchar无非是三种情况:
123( 一个 if ),
12 + 3 / 1 +23 / 13 + 2(两个 if 嵌套),
1 / 2 / 3( else ); -
第一次使用三元求最大值,输出数字;
-
第二次再使用三元求最大值,输出字符:” 第 n 只 “;
程序写得是实在长,因为初学,目前也没有想到太好的方法
/*
输入三个猪的体重
判断哪只最大,最小
判断哪几只体重相同
*/
package com.itheima;
import java.util.Scanner;
public class practice010{
public static void main(String[]arge){
Scanner sc = new Scanner(System.in);
int tiger1W;
int tiger2W;
int tiger3W;
String one = "第一只";
String two = "第二只";
String three = "第三只";
System.out.println();
System.out.println("请输入三个猪的体重[kg]");
System.out.println();
System.out.println("请输入第一个猪的体重[kg]");
tiger1W = sc.nextInt();
System.out.println("请输入第二个猪的体重[kg]");
tiger2W = sc.nextInt();
System.out.println("请输入第三个猪的体重[kg]");
tiger3W = sc.nextInt();
System.out.println();
System.out.println("第一只猪的重量是" + tiger1W +"kg");
System.out.println("第二只猪的重量是" + tiger2W +"kg");
System.out.println("第三只猪的重量是" + tiger3W +"kg");
//-----------------------------------------------
int temp1 = tiger1W >= tiger2W? tiger1W: tiger2W;//求最大值
int maxW = temp1 >= tiger3W? temp1: tiger3W;
//-----------------------------------------------
int temp2 = tiger1W <= tiger2W? tiger1W: tiger2W;//求最小值
int minW = temp1 <= tiger3W? temp2: tiger3W;
//-----------------------------------------------
int a1 = tiger1W - tiger2W ==0? 0: 1;
int a2 = tiger2W - tiger3W ==0? 0: 1;
int a3 = tiger3W - tiger1W ==0? 0: 1;
int A = a1 + a2 + a3;
String case00 = "";
String tempChar1 = "",tempChar2 = "";
if( A ==0 ){
//{
case00 = "三只的体重相同";
tempChar1 = "第一只,第二只和第三只";
tempChar2 = "第一只,第二只和第三只";
//}
}else if( A == 2 ){
if ( a1 == 0 ){
{
case00 = "第一只和第二只的体重相同";
if ( tiger1W == maxW ){
//{
tempChar1 = "第一只和第二只";
tempChar2 = "第三只";
//}
}else{
//{
tempChar2 = "第一只和第二只";
tempChar1 = "第三只";
//{
}
}
}else if( a2 == 0 ){
{
case00 = "第二只和第三只的体重相同";
if ( tiger1W == maxW ){
//{
tempChar1 = "第二只和第三只";
tempChar2 = "第一只";
//}
}else{
//{
tempChar2 = "第二只和第三只";
tempChar1 = "第一只";
//}
}
}
}else{
{
case00 = "第一只和第三只的体重相同";
if ( tiger1W == maxW ){
//{
tempChar1 = "第一只和第三只";
tempChar2 = "第二只";
//}
}else{
//{
tempChar2 = "第一只和第三只";
tempChar1 = "第二只";
//}
}
}
}
}else {
case00 = "没有一只的重量相同";
//-----------------------------------------------
tempChar1 = tiger1W > tiger2W? one: two;//求最大的是第几只
tempChar1 = temp1 > tiger3W? tempChar1: three;
//-----------------------------------------------
tempChar2 = tiger1W < tiger2W? one: two;//求最小的是第几只
tempChar2 = temp1 < tiger3W? tempChar2: three;
}
System.out.println();
System.out.println("三只最重的是: " + tempChar1 + "猪, " + "它的体重是" + maxW +"kg");
System.out.println("三只最轻的是: " + tempChar2 + "猪, " + "它的体重是" + minW +"kg");
System.out.println();
System.out.println( case00 );
}
}
猪:我招你惹你了?!