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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚伟涛 中级黑马   /  2012-4-16 10:32  /  1359 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.Scanner;
  2. public class orde2{
  3.         public static void main(String[] orgs){
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入数字个数");
  6.                 int num = sc.nextInt();
  7.                 int[]figure = new int[num];
  8.                 System.out.println("请输入数字");
  9.                 for(int i = 1;i<=figure.length;i++){
  10.                         figure = sc.nextInt();
  11.                         }
  12.                 System.out.println("输入时的数字顺序如下:");
  13.                 for(int i = 1;i<= figure.length;i++){
  14.                         figure = sc.nextInt();
  15.                         System.out.print(figure+"\t");
  16.                         }
  17.                 System.out.println();
  18.                 System.out.println("输入后的数字顺序如下:");
  19.                 for(int i = 1;i<= figure.length;i++){
  20.                         figure = sc.nextInt();
  21.                         exchager1(figure);
  22.                         exchager2(figure);
  23.                         System.out.print(figure+"\t");
  24.                         }
  25.                 System.out.println();
  26.                         }
  27.         }
  28.                 static void exchanger1(int figure []){
  29.                                 int[]figure3 = new int[num];
  30.                         for(int i = 1;i<=figure3.length;i++){
  31.                                 for(int j = 1;j<=figure3.length;j++){
  32.                                         if(figure3[j]>figure[j+1]){
  33.                                                 int num = 0;
  34.                                                 num = figure3;
  35.                                                 figure3 = figure3[i+1];
  36.                                                 figure3[i+1] = num;
  37.                                                 }
  38.                                         }
  39.                                 }
  40.                         }
  41.                 static void exchanger2(int figure []){
  42.                         int[]figure3 = new int[num];
  43.                         for(int i = 1;i<=figure3.length;i++){
  44.                                 for(int j = 1;j<=figure3.length;j++){
  45.                                         if(figure3[j]<figure[j+1]){
  46.                                                 int num = 0;
  47.                                                 num = figure3;
  48.                                                 figure3 = figure3[i+1];
  49.                                                 figure3[i+1] = num;
  50.                                                 }
  51.                                         }
  52.                                 }
  53.                         }
复制代码

6 个回复

倒序浏览
主函数括号里是args,不是orgs
回复 使用道具 举报
主函数里面是不是args没有问题,
楼主这个代码问题太多了。

7、14、20行   int[]figure = new int[num];
int[] figure 空格 呢?

............


10行   figure = sc.nextInt();
figure是一个int类型的数组,不是int类型的数据,这样怎么可以????
回复 使用道具 举报
修改格式的时候写错了。

7行   int[]figure = new int[num];
int[] figure 空格 呢?

............


10、14、20行   figure = sc.nextInt();
figure是一个int类型的数组,不是int类型的数据,这样怎么可以????

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
从代码猜测楼主的意图是想看冒泡排序的过程,从大到小和从小到大,每排一次把结果打印一次?
按照我的猜测做了修改,楼主的代码错误实在很多,主要是对冒泡排序掌握不扎实,还有就是引用数组是从0到length-1的。
反正错误很多啦,贴出修改后的代码,改动的地方有注释,楼主自己看吧。
import java.util.Arrays;
import java.util.Scanner;
public class orde2{
        public static void main(String[] orgs){
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入数字个数");
                int num = sc.nextInt();
                int[]figure = new int[num];
                //增加两个数组。
                int[]figure1 = new int[num];
                int[]figure2 = new int[num];
                System.out.println("请输入数字");
                for(int i = 0;i<figure.length;i++){ //此处修改 从0开始  <=改为<
                        figure[i] = sc.nextInt();//此处修改
                        }
                System.out.println("输入时的数字顺序如下:");
                for(int i = 0;i< figure.length;i++){ //此处修改 从0开始  <=改为<
                        //figure[i] = sc.nextInt(); //此处修改
                        System.out.print(figure[i]+"\t");
                        }
                System.out.println();
                System.out.println("输入后的数字顺序如下:");
               
                System.arraycopy(figure, 0, figure1, 0, figure.length);
                System.arraycopy(figure, 0, figure2, 0, figure.length);
                for(int i = 0;i< figure.length;i++){ //此处修改 <=改为<
                        //figure[i] = sc.nextInt();
                        exchanger1(figure1,i); //此处修改 exchager1 -->exchanger1
                        System.out.print("大到小"+Arrays.toString(figure1) +"\t");
                        exchanger2(figure2,i); //此处修改 exchager2 -->exchanger2
                        System.out.print("小到大"+Arrays.toString(figure2)+"\t");
                        System.out.println();
                        }
                System.out.println();
            }
      
                                //冒泡 从大到小
                static void exchanger1(int figure [],int step){
                       //         int[]figure3 = new int[num]; //此处修改
                      //  for(int i = figure.length-1;i>0;i++){ //for循环整个修改
                                for(int j = 0;j<figure.length-step-1;j++){
                                        if(figure[j]<figure[j+1]){
                                                int num = 0;
                                                num = figure[j];
                                                figure[j] = figure[j+1];
                                                figure[j+1] = num;
                                                }
                                        }
                                }
                       // }
               
                //冒泡从小到大               
                static void exchanger2(int figure [],int step){
                    //         int[]figure3 = new int[num]; //此处修改
                   //  for(int i = figure.length-1;i>0;i++){ //for循环整个修改
                             for(int j = 0;j<figure.length-step-1;j++){
                                     if(figure[j]>figure[j+1]){
                                             int num = 0;
                                             num = figure[j];
                                             figure[j] = figure[j+1];
                                             figure[j+1] = num;
                                             }
                                     }
                             }
                    // }

                }

运行效果:

输入时的数字顺序如下:
3        1        4        2        6        4       
输入后的数字顺序如下:
大到小[3, 4, 2, 6, 4, 1]        小到大[1, 3, 2, 4, 4, 6]       
大到小[4, 3, 6, 4, 2, 1]        小到大[1, 2, 3, 4, 4, 6]       
大到小[4, 6, 4, 3, 2, 1]        小到大[1, 2, 3, 4, 4, 6]       
大到小[6, 4, 4, 3, 2, 1]        小到大[1, 2, 3, 4, 4, 6]       
大到小[6, 4, 4, 3, 2, 1]        小到大[1, 2, 3, 4, 4, 6]       
大到小[6, 4, 4, 3, 2, 1]        小到大[1, 2, 3, 4, 4, 6]       

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
张卯 发表于 2012-4-16 11:36
主函数括号里是args,不是orgs

args 这个可以随便改变的,基础视频老毕都讲过了~~在讲函数那块  回头看看吧
回复 使用道具 举报
张卯 中级黑马 2012-4-16 16:47:18
7#
贠(yun)靖 发表于 2012-4-16 16:40
args 这个可以随便改变的,基础视频老毕都讲过了~~在讲函数那块  回头看看吧 ...

哎~都忘得差不多了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马