Java - 数组小练习(一) June 1,2019

数组小练习:

  1. 创建一个数组用来存储1-100之间的奇数;
  2. 给定两个数组a{1,2,3,4}  b{5,6,7,8} 将两个数组内的元素对应位置互换;
  3. 给定一个数组a{1,2,3,4,5,6,7} 将这个数组中的元素头尾对应互换位置;
  4. 给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值;
  5. 给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题);
  6. 给定两个数组a{1,2,3}  b{4,5} 合并两个数组 (创建一个新的数组5长度);
  7. 给定一个数组a{1,2,3,9,4,5} 按照数组中的最大值位置 将数组拆分成两个{1,2,3} {4,5};
  8. 给定一个数组a{1,2,3,0,0,4,5,0,6,0,7} 去掉数组中的0元素 (创建一个新数组 短的 非零元素挑出来);
  9. 创建一个数组 存储2-100之间的素数(质数);
  10. 数组元素的排序(冒泡 快速 选择 希尔.....);
  11. 用户的登录认证(用数组当作小数据库 存值 用户验证);

 

1.创建一个数组来存储1--100间的奇数
public class Array {
   public static void main(String[] args){
       int number = 0;
       for(int sum = 1; sum <=100; sum++){
           if(sum % 2 != 0) number++;
       }
       int [] array = new int[number];
       int index = 0;
       for(int sum = 1; sum <=100; sum++){
           if(sum % 2 != 0) {
               array[index++] = sum;
           }
       }
       for(int var : array){
           System.out.println(var);
       }
   }
}


2.给定两个数组a{1,2,3,4}  b{5,6,7,8} 将两个数组内的元素对应位置互换
@SuppressWarnings("all")
public class ArraySwop {
        //给定两个数组,使其元素互换
    public void Swop(int[] arrayA,int[] arrayB){
        //有两种方法:
        // 一种是引用地址交换(不受数组长度限制)
        // 一种是元素值互换(受两数组长度限制)


        //方法一:交换两数组地址
        System.out.println("交换前数组A为:");
       for(int result : arrayA) {
           System.out.print(result + "\t");
       }
       System.out.println();
       System.out.println("交换前数组B为:");
        for(int result : arrayB){
            System.out.print(result+"\t");
        }
        System.out.println();
        int temp[];
        temp = arrayA;
        arrayA = arrayB;
        arrayB = temp;
        System.out.println("----------------");
        System.out.println("交换后数组A为:");
        for(int result : arrayA){
            System.out.print(result+"\t");
        }
        System.out.println();
        System.out.println("交换后数组B为:");
        for(int result : arrayB){
            System.out.print(result+"\t");
        }

        /*
        for(int i = 0; i < arrayA.length; i++){
            int temp = 0;
            temp = arrayA[i];
            arrayA[i] = arrayB[i];
            arrayB[i] = temp;
        }
        System.out.println("交换后数组A存储的值为:");
        for(int var : arrayA){
            System.out.print(var+"\t");
        }
        System.out.println();
        System.out.println("交换后数组B存储的值为:");
        for(int var : arrayB){
            System.out.print(var+"\t");
        }
        */
    }
}

思路图解:

 

 

3.给定一个数组a{1,2,3,4,5,6,7} 将这个数组中的元素头尾对应互换位置.
public class Array {
   public static void main(String[] args){
       int [] array = new int[]{1, 2, 3, 4, 5, 6, 7};

       for(int i = 0; i < array.length / 2; i++){
           int temp = array[i];
           array[i] = array[array.length-i-1];
           array[array.length-i-1] = temp;
       }
       for(int var : array){
           System.out.println(var);
       }
   }
}
4.给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值;

 

public class Array {
   public static void main(String[] args){
       int [] array = new int[]{1, 2, 3, 4, 5, 6};
        int sum = 0;
        float aver = 0.0F;
       for(int i = 0; i < array.length; i++){
           sum = sum + array[i];
       }
       aver = (float)sum / (float)array.length;
       System.out.println("和为:"+ sum);
       System.out.println("平均数为:"+ aver);
   }
}

 

5.给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题);
public class ArrayExtremum {
    //输出极值,true为最大值,false为最小值
    public void Extremum(int[] arrayA,boolean flag){
        int temp = arrayA[0];
        if (flag){
            for (int i=1;i<arrayA.length;i++){
                if(temp<arrayA[i])
                    temp = arrayA[i];
            }
            System.out.println("该数组最大值为:"+temp);
        }else {
            for (int i=1;i<arrayA.length;i++){
                if(temp>arrayA[i])
                    temp = arrayA[i];
            }
            System.out.println("该数组最小值为:"+temp);
        }
    }
}

 

posted @ 2019-06-01 16:39  亿贫如洗杨道长  阅读(162)  评论(0编辑  收藏  举报