请完成下列Java程序:将整型数组中的所有奇数移到所有偶数之前,并打印结果。要求初始化一个大小为10的数组,里面按照数组下标顺序存放0~9,输出交换位置后的数组。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

admin2009-01-15  120

问题 请完成下列Java程序:将整型数组中的所有奇数移到所有偶数之前,并打印结果。要求初始化一个大小为10的数组,里面按照数组下标顺序存放0~9,输出交换位置后的数组。
   注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
   程序运行结果如下:
  9173546280
     public class ex20_2 {
       private int[]  a=new int[10];
       public static void main(String[]  args)
         ex20_2 obj20_2=new ex20_2 );
         obj20_2. method ( );
       }
       public void init () {
         for(int i=0;i<a.length;i++) {
             a =i;
         }
       }
       public void method() {
        int c,i,j;
        i=0;
        j=a.length-1;
        init();
        while(i<j){
           while((a%2==1)&&i<j)
               i++;
           while((a[j]%2==0)&&i<j)
               j--
           if(i<j){
               c=a ;
               ______________;
               a[j]=c;
               _______________;
          }
      }
      for(i=0;i<a.length;i++){
          System.out.print(Integer.toString(a));
       }
    }
}

选项

答案a[i]=a[j] i++

解析 本题主要考查数组操作while语句的嵌套。解题关键是会使用双向查找方法查找数组中的数,使用2个下标变量i,j分别从数组的第一个和最后一个元素开始向中间进行搜索,提高搜索效率,若a为偶数,a[j]为奇数,则交换,同时i++,j--,即 i向右、j向左扫描;若a为奇数,a[j]为偶数,则i++,j--;若a为奇数,a[j]为奇数,则j不变,i++;若a为偶数,a[j]为偶数,则i不变,j--;当i=j 时结束扫描。本题中,第1个空,交换a和a[j],是上述算法中的第一种情况;第2个空, i++下标变量i向右移动。
转载请注明原文地址:https://jikaoti.com/ti/6kkiFFFM
0

最新回复(0)