A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jason_bao 初级黑马   /  2016-7-24 12:24  /  441 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何在只用if语句实现从键盘录入三个整数,并按从小到大的顺序输出?

4 个回复

倒序浏览
import java.util.Scanner;
class Demo1
{
        public static void main(String[] args)
        {
                Scanner sc=new Scanner(System.in);
                System.out.println("输入三个数,请输入第一个数");
                int a =sc.nextInt();
                System.out.println("请输入第二个数");
                int b =sc.nextInt();
                System.out.println("请输入第三个数");
                int c =sc.nextInt();
                if (a > b && b > c) {
                                        System.out.println("从大到小依次为:"+ c +","+ b +","+ a);
                }else if (a > c && c > b ) {
                                        System.out.println("从大到小依次为:"+ b +","+ c +","+ a);

                }else if (b > c && c > a) {
                                        System.out.println("从大到小依次为:"+ a +","+ c +","+ b);
                }else if (b > a && a > c) {
                                        System.out.println("从大到小依次为:"+ c +","+ a +","+ b);
                }else if (c > a && a > b) {
                                        System.out.println("从大到小依次为:"+ b +","+ a +","+ c);
                }else if (c > b && b > a) {
                                        System.out.println("从大到小依次为:"+ a +","+ b +","+ c);
                }
               
        }
}

//...if的感觉有点麻烦了...不过用起来还是不错的
回复 使用道具 举报
import java.util.Scanner;
class Test12 {
        public static void main(String[] args) {
                    Scanner sc = new Scanner(System.in);
                        System.out.println("请输入第一个整数");
                        int x = sc.nextInt();
                        System.out.println("请输入第二个整数");
                        int y = sc.nextInt();
                        System.out.println("请输入第三个整数");
                        int z = sc.nextInt();
                        int max = (((x > y) ? x : y) > z) ? ((x > y) ? x : y) : z;
                        int min = (((x < y) ? x : y) < z) ? ((x < y) ? x : y) : z;
                        int mid = x + y + z - max - min;
                        System.out.println("按照从小到大排序后的顺序为:" + min + " " + mid + " " + max);
回复 使用道具 举报
/**
        只用if语句实现从键盘录入三个整数,并按从小到大的顺序输出
       
*/
import java.util.Scanner;                                                                                                        //导包
class HomeWork7 {
        public static void main(String[] args) {
                //System.out.println("Hello World!");
                Scanner sc = new Scanner(System.in);                                                //创建Scanner类的对象
                System.out.println("请输入第一个整数:");
                int x = sc.nextInt();                                                                                //键盘录入的第一个数存入x中
                System.out.println("请输入第二个整数:");
                int y = sc.nextInt();                                                                                //键盘录入的第一个数存入y中
                System.out.println("请输入第三个整数:");
                int z = sc.nextInt();                                                                               //键盘录入的第一个数存入z中
                int temp  = 0;
                int temp1 = 0;
                int temp2 = 0;
                if (x < y){
                        if (x < z){
                                temp = x;
                                if (y < z){
                                        temp1 = y;
                                        temp2 = z;
                                }else {
                                        temp1 = z;
                                        temp2 = y;
                                }
                        }else {
                                temp  = z;
                                temp1 = x;
                                temp2 = y;
                        }
                }else if (y < z){
                        temp = y;
                        if (x < z){
                                temp1 = x;
                                temp2 = y;
                        }else {
                                temp1 = y;
                                temp2 = x;
                        }

                }else {
                        temp  = z;
                        temp1 = y;
                        temp2 = x;
                }
                System.out.println(temp);
                System.out.println(temp1);
                System.out.println(temp2);
        }
}
回复 使用道具 举报
本帖最后由 itismyhao 于 2016-7-25 02:24 编辑

放两种吧。
一种是三元运算符,求中间数那一行具体理解为:
先求两者中较大者 a=num1>num2?num1:num2
然后与第三者比较,取较小者b=a>num3?num3:a
最开始的两者中求较小者,c=num1>num2?num2:num1
然后用b与c做比较,去较大者 b>c?b:c
之所以这么麻烦,是隐约记得求和再求差的方法好像是在数字特别大的情况下会出错//记不太清
第二种是解决此类多少个数字排序的根本方法,把这些数组放进数组里,然后排序,再遍历打印数组即可。
  1. /*
  2. import java.util.Scanner;
  3. class Demo1
  4. {
  5.         public static void compare()
  6.         {
  7.                 Scanner sc=new Scanner(System.in);
  8.                 System.out.println("输入三个数,请输入第一个数");
  9.                 int num1=sc.nextInt();
  10.                 System.out.println("请输入第二个数");
  11.                 int num2=sc.nextInt();
  12.                 System.out.println("请输入第三个数");
  13.                 int num3=sc.nextInt();
  14.                 int max=(num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;
  15.                 int min=(num1<num2?num1:num2)<num3?(num1<num2?num1:num2):num3;
  16.                 int mid=((num1>num2?num1:num2)>num3?num3:(num1>num2?num1:num2))>(num1>num2?num2:num1)?((num1>num2?num1:num2)>num3?num3:(num1>num2?num1:num2)):(num1>num2?num2:num1);
  17.                 System.out.println("从大到小依次为:"+min+","+mid+","+max);
  18.         }
  19.         public static void main(String[] args)
  20.         {
  21.                 compare();
  22.         }
  23. }
  24. */
  25. import java.util.Scanner;
  26. class Demo2
  27. {
  28.         public static void swap(int[] arr,int index1,int index2)
  29.         {
  30.                 int temp=arr[index1];
  31.                 arr[index1]=arr[index2];
  32.                 arr[index2]=temp;
  33.         }
  34.         public static void selectSort(int[] arr)
  35.         {
  36.                 int maxIndex=0;
  37.                 for(int i=0;i<arr.length-1;i++)
  38.                 {
  39.                         for(int j=i+1;j<arr.length;j++)
  40.                         {
  41.                                 if(arr[i]>arr[j])
  42.                                 {
  43.                                         swap(arr,i,j);
  44.                                 }
  45.                         }
  46.                 }
  47.         }
  48.         public static void printArray(int[] arr)
  49.         {
  50.                 for(int i=0;i<arr.length;i++)
  51.                 {
  52.                         System.out.print(arr[i]+" ");
  53.                 }
  54.         }
  55.         public static void main(String[] args)
  56.         {
  57.                 int arr[]=new int[3];
  58.                 Scanner sc=new Scanner(System.in);
  59.                 System.out.println("请输入三个数字中第一个数字");
  60.                 arr[0]=sc.nextInt();
  61.                 System.out.println("请输入第二个数字");
  62.                 arr[1]=sc.nextInt();
  63.                 System.out.println("请输入第三个数字");
  64.                 arr[2]=sc.nextInt();
  65.                 selectSort(arr);
  66.                 System.out.print("从小到大为");
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马