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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zybnqf520 中级黑马   /  2016-2-25 12:09  /  2552 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(1)键盘录入三个整数,按照从小到大的顺序输出
        (2)如果用户输入的是3 2 1,程序运行后打印格式"按照从小到大排序后的顺序为:1 2 3"
用三元运算 怎么写。

评分

参与人数 1黑马币 +1 收起 理由
木cc + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
简直是疯了,排序是需要循环和判断的,三元运算只是判断的简写而已,单单三个数的排序就有6种可能  非要用三元写  不但不灵活 而且可读性相当差
回复 使用道具 举报
int a, b, c ;
int d = (a>b)?((a>c)?a:c):((b>c)?b:c);
int e = (a<b)?((a>c)?c:a):((b>c)?c:b);
int f = a + b + c - d - e ;
e < f < d :
这样可以吗???
回复 使用道具 举报 1 0
木cc 发表于 2016-2-25 14:56
int a, b, c ;
int d = (a>b)?((a>c)?a:c):((b>c)?b:c);
int e = (ac)?c:a):((b>c)?c:b);

我只能想到这儿了
回复 使用道具 举报
三元运算符可以实现排序需要的,但是做出来后程序的可读性很差,所以不建议这么做.可以用if~else语句实现.以下是实现代码:
  1. /* (1)键盘录入三个整数,按照从小到大的顺序输出
  2.         (2)如果用户输入的是3 2 1,程序运行后打印格式"按照从小到大排序后的顺序为:1 2 3"
  3. */
  4. import java.util.Scanner;
  5. class Homework_7 {
  6.         public static void main(String[] args) {
  7.                 Scanner sc =new Scanner(System.in);
  8.                 System.out.println("请输入第一个整数");
  9.                 int x = sc.nextInt();
  10.                 System.out.println("请输入第二个整数");
  11.                 int y = sc.nextInt();
  12.                 System.out.println("请输入第三个整数");
  13.                 int z = sc.nextInt();

  14.                 if( x > y ) {
  15.                         if( y > z) {  // x > y > z
  16.                                 System.out.println("按照从小到大的顺序为: " +  z + " " + y + " " + x);
  17.                         }else if(x > z) { // x> z > y
  18.                                 System.out.println("按照从小到大的顺序为: "  + y + " " + z + " " + x);
  19.                         }else {  // z > x > y
  20.                                 System.out.println("按照从小到大的顺序为: "  + y + " " + x + " " + z);
  21.                         }
  22.                 }else { //y > x
  23.                         if( x > z) { //y > x > z
  24.                                 System.out.println("按照从小到大的顺序为: " +  z + " " + x + " " + y);
  25.                         }else if(y > z) { //y > z > x
  26.                                 System.out.println("按照从小到大的顺序为: "  + x  + " " + z + " " + y);
  27.                         }else { // z > y > x
  28.                                 System.out.println("按照从小到大的顺序为: " +  x+ " " +  y + " " + z);
  29.                         }
  30.                 }
  31.                 System.out.println("Hello World!");
  32.         }
  33. }
复制代码
回复 使用道具 举报 1 0
  1. import java.util.Scanner;
  2. class Demo05 {
  3.         public static void main(String[] args){
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入第一个整数:");
  6.                 int a = sc.nextInt();
  7.                 System.out.println("请输入第二个整数:");
  8.                 int b = sc.nextInt();
  9.                 System.out.println("请输入第三个整数:");
  10.                 int c = sc.nextInt();
  11.                 int temp;
  12.                 if (a>b) {
  13.                         temp = a;
  14.                         a = b;
  15.                         b = temp;
  16.                 }
  17.                 if (a>c) {
  18.                         temp = a;
  19.                         a = c;
  20.                         c = temp;
  21.                 }
  22.                 if (b>c) {
  23.                         temp = b;
  24.                         b = c;
  25.                         c = temp;
  26.                 }
  27.                 System.out.println("按照从小到大排序后的顺序为:"+a+b+c);
  28.         }
  29. }
复制代码
回复 使用道具 举报
木cc 初级黑马 2016-2-25 15:15:08
7#
我心飞翔92 发表于 2016-2-25 15:12
三元运算符可以实现排序需要的,但是做出来后程序的可读性很差,所以不建议这么做.可以用if~else语句实现.以 ...

懂不懂客户需求?客户要求这么做,你就这么做!
回复 使用道具 举报
我心飞翔92 发表于 2016-2-25 15:12
三元运算符可以实现排序需要的,但是做出来后程序的可读性很差,所以不建议这么做.可以用if~else语句实现.以 ...

小伙子 不错 继续努力。
回复 使用道具 举报
木cc 发表于 2016-2-25 14:56
int a, b, c ;
int d = (a>b)?((a>c)?a:c):((b>c)?b:c);
int e = (ac)?c:a):((b>c)?c:b);

这是什么鬼。。
回复 使用道具 举报
import java.util.Scanner;
class Homework77 {
        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 a = (x > y) ? x : y;   //两个数的最大值
                int b = (a > z) ? a : z;   //三个数的最大值
                int c = (x > y) ? y : x;   //两个数的最小值
                int d = (c > z) ? z : c;   //三个数的最小值
                int e = x + y + z - b - d;
                System.out.println("按照从小到大的顺序为: " + d + " " +  e + " " + b);
        }               
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马