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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© walkk 中级黑马   /  2016-7-24 22:01  /  1090 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果用户输入的是3 2 1,程序运行后打印格式"按照从小到大排序后的顺序为:1 2 3"
我的傻比代码是

  1. import java.util.Scanner;
  2. class Demo{
  3.        
  4.                 public static void main(String[] args){

  5.                         Scanner sc=new Scanner(System.in);
  6.                         System.out.println("请按照从小到大的顺序输出整数");
  7.                         System.out.println("第一个整数:");
  8.                         int x = sc.nextInt();
  9.                         System.out.println("第二个整数:");
  10.                         int y = sc.nextInt();
  11.                         System.out.println("第三个整数:");
  12.                         int z = sc.nextInt();
  13.                         int a=0;
  14.                         int b=0;
  15.                         int c=0;

  16.                         if (x>y && x>z) {
  17.                                 a=x;
  18.                         }else if (y>x && y>z) {
  19.                                 a=y;
  20.                         }else if (z>x && z>y) {
  21.                                 a=z;
  22.                         }

  23.                         if (a==x && y>z) {
  24.                                 b=y;
  25.                         }else if (a==x && z>y) {
  26.                                 b=z;
  27.                         }else if (a==y && x>z) {
  28.                                 b=x;
  29.                         }else if (a==y && z>x) {
  30.                                 b=z;
  31.                         }else if (a==z && x>y) {
  32.                                 b=x;
  33.                         }else if (a==z && y>x) {
  34.                                 b=y;
  35.                         }

  36.                         if (a==x && b==y) {
  37.                                 c=z;
  38.                         }else if (a==x && b==z) {
  39.                                 c=y;
  40.                         }else if (a==y && b==x) {
  41.                                 c=z;
  42.                         }else if (a==y && b==z) {
  43.                                 c=x;
  44.                         }else if (a==z && b==x) {
  45.                                 c=y;
  46.                         }else if (a==z && b==y) {
  47.                                 c=x;
  48.                         }
  49.                         System.out.println("按照从小到大的顺序输出为:"+c+","+b+","+a);

  50.                 }
  51. }
复制代码


怎么改得更有技术性

9 个回复

倒序浏览
import java.util.Scanner;  / public class Test01 {         public static void main(String[] args) {                 System.out.println("随意输入三个数字");                 Scanner s1 = new Scanner(System.in);                 int i = s1.nextInt();                 Scanner s2 = new Scanner(System.in);                 int j = s2.nextInt();                 Scanner s3 = new Scanner(System.in);                 int k = s3.nextInt();                                  System.out.println("你输入的三个数字是"+ i+"," + j +","+ k);                                  int [] arr = new int [] {i,j,k};                                  for(int q = 0;q <arr.length;q++){                         for(int w = 0;w <arr.length-1;w++){                                 if(arr[q] < arr[w]){                                         int temp = arr[q];                                         arr[q] = arr[w];                                         arr[w] = temp;                                 }                         }                 }                 for(int q = 0;q < arr.length;q++){                         System.out.print(arr[q] + ",");                 }          }  }
回复 使用道具 举报
import java.util.Scanner;

/
public class Test01 {
        public static void main(String[] args) {
                System.out.println("随意输入三个数字");
                Scanner s1 = new Scanner(System.in);
                int i = s1.nextInt();
                Scanner s2 = new Scanner(System.in);
                int j = s2.nextInt();
                Scanner s3 = new Scanner(System.in);
                int k = s3.nextInt();
               
                System.out.println("你输入的三个数字是"+ i+"," + j +","+ k);
               
                int [] arr = new int [] {i,j,k};
               
                for(int q = 0;q <arr.length;q++){
                        for(int w = 0;w <arr.length-1;w++){
                                if(arr[q] < arr[w]){
                                        int temp = arr[q];
                                        arr[q] = arr[w];
                                        arr[w] = temp;
                                }
                        }
                }
                for(int q = 0;q < arr.length;q++){
                        System.out.print(arr[q] + ",");
                }

        }

}
回复 使用道具 举报
public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                while(true){
                        System.out.println("输入三个数字,以空格隔开");
                        int a = sc.nextInt();
                        int b = sc.nextInt();
                        int c = sc.nextInt();
                        if(a > b ){
                                int temp = a;
                                a = b;
                                b = temp;
                        }
                        if(a > c ){
                                int temp = a;
                                a = c;
                                c = temp;
                        }
                        if(b > c){
                                int temp = b;
                                b = c;
                                c = temp;
                        }
                        System.out.println("从小到大的顺序为:"+a+" "+b+" "+c);
                }
        }


这个就可以,不太懂的话,用笔画画,标记一下位置就能好懂一点
回复 使用道具 举报
  1. /*这个今天刚做过。
  2. 这个用排序,把这个数字放到数组里是最好的选择。
  3. 楼上给过了
  4. 给个三元运算符的
  5. */
  6. import java.util.Scanner;
  7. class Demo
  8. {
  9.         public static void compare()
  10.         {
  11.                 Scanner sc=new Scanner(System.in);
  12.                 System.out.println("输入三个数,请输入第一个数");
  13.                 int num1=sc.nextInt();
  14.                 System.out.println("请输入第二个数");
  15.                 int num2=sc.nextInt();
  16.                 System.out.println("请输入第三个数");
  17.                 int num3=sc.nextInt();
  18.                 int max=(num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;
  19.                 int min=(num1<num2?num1:num2)<num3?(num1<num2?num1:num2):num3;
  20.                 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);
  21.                 System.out.println("从大到小依次为:"+min+","+mid+","+max);
  22.         }
  23.         public static void main(String[] args)
  24.         {
  25.                 compare();
  26.         }
复制代码
回复 使用道具 举报

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 a = sc.nextInt();
                System.out.println("请输入第二个数");
                int b = sc.nextInt();
                System.out.println("请输入第三个数");
                int c = sc.nextInt();
//将输入的数加入数组中
                int[] arr = {a,b,c};
//调用Arrays的自动排序方法sort()
                Arrays.sort(arr);
//遍历数组
                for(int i: arr){
                        System.out.println(i);
                }
        }
}
回复 使用道具 举报
/*今天刚做的,用的投机的办法*/
import java.util.Scanner;
class exercise1 {
        public static void main(String[] aegs){
                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();
               
                int max1;
                int max2;
                int max3;
                       
                max1= ((a>b)?a:b)>c?((a>b)?a:b):c;
                max3= ((a<b)?a:b)<c?((a<b)?a:b):c;
                max2= long(a+b+c)-long(max1+max3);
                //System.out.println(max3+"<"+max1);
                System.out.println(max3+"<"+max2+"<"+max1);
               
        }
}
回复 使用道具 举报 1 0
walkk 中级黑马 2016-7-25 01:00:57
8#
wx_EiIipaVt 发表于 2016-7-24 22:42
import java.util.Scanner;

/

谢了 数组没学啊
回复 使用道具 举报
walkk 中级黑马 2016-7-25 01:07:11
9#
wuliannan 发表于 2016-7-25 00:15
/*今天刚做的,用的投机的办法*/
import java.util.Scanner;
class exercise1 {

这个符合我目前的水平,但为什么要转换为long啊
回复 使用道具 举报
walkk 中级黑马 2016-7-25 01:08:53
10#
wuliannan 发表于 2016-7-25 00:15
/*今天刚做的,用的投机的办法*/
import java.util.Scanner;
class exercise1 {

这个符合我目前的水平,但为什么要转换为long啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马