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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

26 个回复

倒序浏览
if (x < y & y <= z) {
                                 System.out.println("按照从小到大排序后的顺序为:" + x + y + z);
                        }else if (y < x & x <= z) {
                                 System.out.println("按照从小到大排序后的顺序为:" + y + z + z);
                        }else if (x < z & z <= y) {
                                 System.out.println("按照从小到大排序后的顺序为:" + x + z + y);
                        }else if (z < x & x <= y) {
                                 System.out.println("按照从小到大排序后的顺序为:" + z + x + y);
                        }else if (z < y & y <= x) {
                                 System.out.println("按照从小到大排序后的顺序为:" + z + y + x);
                        }else {
                                 System.out.println("按照从小到大排序后的顺序为:" + y + z + x);
这是我的想法,但运算时问题有点大..不知道为什么

点评

我全改成<=也不行,在输入213的时候,输出的居然是133,表示看不懂啊  发表于 2016-7-24 00:24
回复 使用道具 举报 1 0
657324 来自手机 初级黑马 2016-7-24 01:51:36
藤椅
int max;  //取出最大值
if(x>y){max = x}else{max=y}
if(max>z){     }else{max = z}
同样方法取出最小值及中间值  再打印

点评

嗯,可以  发表于 2016-7-24 21:41
回复 使用道具 举报
  1. import java.util.Scanner;
  2. class Demo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Scanner sc=new Scanner(System.in);
  7.                 System.out.println("输入三个数,请输入第一个数");
  8.                 int num1=sc.nextInt();
  9.                 System.out.println("请输入第二个数");
  10.                 int num2=sc.nextInt();
  11.                 System.out.println("请输入第三个数");
  12.                 int num3=sc.nextInt();
  13.                 int max=(num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;
  14.                 int min=(num1<num2?num1:num2)<num3?(num1<num2?num1:num2):num3;
  15.                 int mid=(num1>num2?num1:num2)>num3?num3:(num1>num2?num1:num2);
  16.                 System.out.println("从大到小依次为:"+min+","+mid+","+max);
  17.         }
  18. }
复制代码
回复 使用道具 举报 1 0

先做完逻辑功能之后再打印呀
回复 使用道具 举报
好牛的逻辑思维
回复 使用道具 举报
其实可以用StringBuffer 来做  现一个一个添加,然后调用反转,接着转换成字符串输出就可以啦
回复 使用道具 举报
你想的太绕了
回复 使用道具 举报
class SelectDemo
{
        private int[] arr;
        SelectDemo(int[] arr)
        {
                this.arr = arr;
        }
        public void demo()
        {
                for (int x=0;x<arr.length ;x++ )
                {
                        for (int y=x+1;y<arr.length ; y++)
                        {
                                if (arr[x]>arr[y])
                                {
                                        int temp = arr[x];
                                        arr[x] = arr[y];
                                        arr[y] = temp;
                                }
                        }
                }
        }
        public void select()
        {
                for (int x=0;x<arr.length ;x++ )
                {
                        if(x!=arr.length-1)
                        {
                        System.out.print(arr[x]+",");
                        }
                        else
                        {
                        System.out.println(arr[x]);
                        }
                }
        }
}

class  SelectDemo1
{
        public static void main(String[] args)
        {
                int[] arr = {5,7,16};
                SelectDemo s = new SelectDemo(arr);
                s.demo();
                s.select();
        }
}
回复 使用道具 举报
  1. //这是第一种方法:
  2. package 杂七杂八;

  3. import java.util.Arrays;
  4. import java.util.Scanner;

  5. public class CompareDemo2 {
  6.     public static void main(String[] args) {
  7.         Scanner sc = new Scanner(System.in);
  8.         System.out.println("请输入第一个数:");
  9.         int FirstNum = sc.nextInt();
  10.         System.out.println("请输入第二个数:");
  11.         int SecondNum = sc.nextInt();
  12.         System.out.println("请输入第三个数:");
  13.         int ThirdNum = sc.nextInt();
  14.        
  15.         int arr[] = new int[3];
  16.         arr[0] = FirstNum;
  17.         arr[1] = SecondNum;
  18.         arr[2] = ThirdNum;
  19.         Arrays.sort(arr);
  20.         System.out.println(Arrays.toString(arr));
  21.     }
  22. }
  23. //这是第二种方法:
  24. package 杂七杂八;

  25. import java.util.Scanner;

  26. public class CompareDemo {
  27.     public static void main(String[] args) {
  28.         Scanner sc = new Scanner(System.in);
  29.         System.out.println("请输入第一个数:");
  30.         int FirstNum = sc.nextInt();
  31.         System.out.println("请输入第二个数:");
  32.         int SecondNum = sc.nextInt();
  33.         System.out.println("请输入第三个数:");
  34.         int ThirdNum = sc.nextInt();
  35.         int sum = FirstNum + SecondNum + ThirdNum;
  36.         int MaxNum = Math.max(Math.max(FirstNum, SecondNum), ThirdNum);
  37.         int MinNum = Math.min(Math.min(FirstNum, SecondNum), ThirdNum);
  38.         int MidNum = sum - (MaxNum+MinNum);
  39.         System.out.println("从小到大排序分别是:"+MinNum+","+MidNum+","+MaxNum);
  40.     }
  41. }
复制代码

回复 使用道具 举报

直接用for循环。嵌套个for循环,然后就像冒泡排序法一样,把大的值全部排在前面。要不然其他方法 逻辑太混乱了。。话说。。我们安卓基础第三天的作业

点评

是的..脑子有点乱,感觉for很熟悉,但想不起来  发表于 2016-7-24 21:46
回复 使用道具 举报
/*(1)键盘录入三个整数,按照从小到大的顺序输出
        (2)如果用户输入的是3 2 1,程序运行后打印格式"按照从小到大排序后的顺序为:1 2 3"*/

import java.util.Scanner;                //导入Scanner包
class Number_Demo {                       //声明一个类
        public static void main(String[] args) { //定义主方法
                Scanner sc=new Scanner(System.in);  //创建Scanner对象
                System.out.println("请输入第一个数据");
                int a=sc.nextInt();  //利用对象方法接受键盘输入的数据赋值给a
                System.out.println("请输入第二个数据");
                int b=sc.nextInt();  //利用对象方法接受键盘输入的数据赋值给b
        System.out.println("请输入第三个数据");
                int c=sc.nextInt();  //利用对象方法接受键盘输入的数据赋值给c
                int[] mu={a,b,c};
                int temp;  //定义一个中间变量
                for(int i=0;i<3;i++){  //利用双重循环,按照升序进行排序,使用冒泡法,依次把大的数据换到前面
                   for(int j=1;j<3;j++){
                      if(mu[j]<mu[j-1]){
                            temp=mu[j-1];
                                mu[j-1]=mu[j];
                                mu[j]=temp;
                          }
                   }
                }
                System.out.print("按照升序排列为:");
for(int i=0;i<3;i++){                     //利用循环,输出数组。
System.out.print(mu[i]+",");

}
               
        }
}
回复 使用道具 举报
public class JiHe_03_03 {
        public static void main(String[] args) {
                System.out.println("请输入数字");
                Scanner sc=new Scanner(System.in);
                ArrayList<Integer> list=new ArrayList<>();
                for (int i = 0; i < 5; i++) {
                        list.add(sc.nextInt());
                }
                Collections.sort(list);        //小到大的顺序
                System.out.println(list);
        }
}
回复 使用道具 举报
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);                 }                         } }
回复 使用道具 举报
...第一次回复...格式怎么变成这个样子了..这个是最简单的方法...高深的上面的大神都回复了..
回复 使用道具 举报
ylca 中级黑马 2016-7-24 12:56:34
16#
弄个数组排序一下再输出不行吗?

点评

刚学到第三天,很多不知道,数组还不知道是什么东西... - -  发表于 2016-7-24 21:33
刚学到第三天,很多不知道,数组还不知道是什么东西... - -  发表于 2016-7-24 21:32
回复 使用道具 举报
怎么这么多人问这个呢。。。
以下纯手打,版主看到给几分技术分啊谢谢...
import java.util.Arrays;
import java.util.Scanner;

public class Test {

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);                                //创建键盘录入对象
                System.out.println("请输入三个整数");                                
                int [] arr = new int [3];                                                        //创建长度为3int型数组存储键盘录入对象
               
                //for循环键盘录入数字将数组填满
                for (int i = 0; i < 3; i++) {
                        arr = sc.nextInt();
                }
                Arrays.sort(arr);                                                                        //数组排序
               
                //for循环遍历数组并输出
                for (int i : arr) {
                        System.out.println(i);
                }
        }

}
上面代码的思想是创建数组并利用循环键盘录入数据将数组填满,调用Arrays.sort()方法进行排序,如果觉得难接受下面附上冒泡排序和快速排序代码

public static void BubbleSort(int [] arr) {//冒泡排序
                int a = 0;
                for (int i = 0; i < arr.length - 1; i++) {
                        for (int j = 0; j < arr.length - 1 - i; j++) {
                                if (arr[j] > arr[j+1]) {
                                        a = arr[j];
                                        arr[j] = arr[j+1];
                                        arr[j+1] = a;
                                }
                        }
                }
举个例子:数组长度为6,用5次排序完成,这也是为什么第一层循环里i < arr.length -1
就是每一次相邻两个比大小,大的滚到后面去~
第一次                                第二次                               第三次                                第四次                              第五次
90 80 70 60 50 40             80 70 60 50 40 90            70 60 50 40 80 90              60 50 40 70 80 90           50 40 60 70 80 90
80 90 70 60 50 40             70 80 60 50 40 90            60 70 50 40 80 90              50 60 40 70 80 90           40 50 60 70 80 90
80 70 90 60 50 40             70 60 80 50 40 90            60 50 70 40 80 90              50 40 60 70 80 90
80 70 60 90 50 40             70 60 50 80 40 90            60 50 40 70 80 90
80 70 60 50 90 40             70 60 50 40 80 90
80 70 60 50 40 90            
        ---------------------------------------------------------------我是分割线------------------------------------------------------------------
        public static void SelectSort(int [] arr){//选择排序
                int a =0;
                for (int i = 0; i < arr.length - 1; i++) {
                        for (int j = i + 1; j < arr.length; j++) {                               
                                if (arr[i] > arr[j]) {
                                a = arr[i];
                                arr[i] = arr[j];
                                arr[j] = a;                                       
                                }
                        }
                }
同样一个例子,选择排序是第一个先和第二个比,小的滚前面,然后还是第一个依次和后面比

第一次                               第二次                             第三次                            第四次                              第五次
90 80 70 60 50 40            40 90 80 70 60 50          40 50 90 80 70 60          40 50 60 90 80 70           40 50 60 70 90 80
80 90 70 60 50 40            40 80 90 70 60 50          40 50 80 90 70 60          40 50 60 80 90 70           40 50 60 70 80 90
70 90 80 60 50 40            40 70 90 80 60 50          40 50 70 90 80 60          40 50 60 70 90 80
60 90 80 70 50 40            40 60 90 80 70 50          40 50 60 90 80 70
50 90 80 70 60 40            40 50 90 80 70 60
40 90 80 70 60 50
回复 使用道具 举报
想了一晚上的结果,终于有答案了
import java.util.Scanner;
                class  Test10 {
                        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) ? y : x) > z) ? z : ((x > y) ? y : x);
                        int c = (((x > y) ? x : y) > z) ?  ((x > y) ? x : y) : z;
                        int b = x ^ y ^ z ^ a ^ c;
                        System.out.println("按照从小到大排序后的顺序为:" + a + b + c);
                }
        }
回复 使用道具 举报

多看书
回复 使用道具 举报
混分的好时机
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马