日期:2014-05-20  浏览次数:20654 次

请教各位前辈!!!if.else基础题目!!主要求教解题思路。。。
问题:在控制台输入3个整数,然后用if.else把这三个数按从小到大输出。求代码及解题思路。

------解决方案--------------------
Scanner input=new Scanner(System.in);
System.out.println("请输入3个数:");
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
int t=0;
//互换值后为b>a;不成立不互换
if(a>b){
t=a;
a=b;
b=t;
}
//互换值后为c>a;不成立不互换
if(a>c){
t=a;
a=c;
c=t;
}
//互换值后为c>b;不成立不互换
if(b>c){
t=b;
b=c;
c=t;
}
//所以是c>b>a
System.out.println("从小到大输出为"+a+"<"+b+"<"+c);
------解决方案--------------------
import java.util.*;
public class ThreeOP
// 测试三元运算符的使用
{
int num1;
int num2;
int num3;

// 构造方法
public ThreeOP() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数num1的值");
this.num1 = scanner.nextInt();
System.out.println("请输入第二个数num2的值");
this.num2 = scanner.nextInt();
System.out.println("请输入第三个数num3的值");
this.num3 = scanner.nextInt();
}

// 成员方法
public void threeop(int num1, int num2, int num3) {
int num;
if (num1 > num2) {
num = num1;
System.out.println("输入的三个数最小数的值:" + num2);
} else {
num=num2;
System.out.println("输入的三个数最小数的值:" + num1);
}
if(num>num3){
System.out.println("输入的三个数中间数的值:" + num3);
System.out.println("输入的三个数最大数的值:" + num);
}else{
System.out.println("输入的三个数中间数的值:" + num);
System.out.println("输入的三个数最大数的值:" + num3);
}
}

public static void main(String[] args) {
ThreeOP three = new ThreeOP();
three.threeop(three.num1, three.num2, three.num3);
}
}
------解决方案--------------------
使用交换值操作,a,b,c,temp
if(a> b){
temp = a;
a=b;
b=temp;
}
if(a> c){
temp = a;
a=c;
c=temp;
}
if(b> c){
temp = b;
b=c;
c=temp;
}
------解决方案--------------------
Java code

Scanner input = new Scanner(System.in);
        System.out.println("请输入3个数:");
        int a = input.nextInt();
        int b = input.nextInt();
        int c = input.nextInt();
        // 互换值后为b>a;不成立不互换
        if (a > b) {
            a = a + b;
            b = a - b;
            a = a - b;
        }
        // 互换值后为c>a;不成立不互换
        if (a > c) {
            a = a + c;
            c = a - c;
            a = a - c;
        }
        // 互换值后为c>b;不成立不互换
        if (b > c) {
            b = b + c;
            c = b - c;
            b = b - c;
        }
        // 所以是c>b>a
        System.out.println("从小到大输出为" + a + "<" + b + "<" + c);