Java中 数组作业的练习

来源:互联网 发布:mono软件 编辑:程序博客网 时间:2024/04/28 03:57

 Java中 数组的练习

   结合上一篇的数组复习,本篇给出一些数组的练习

实例代码一:


package cn.com.blog.array;import java.util.Scanner;/* * 1.已知一个数组,求数组中心元素。2.已知一个数组,求所有元素和。3.已知一个数组,输出所有奇数下标元素。4.已知一个数组,输出所有元素中,值为奇数的。5.已知一个数组,将所有元素乘二。6.已知一个数组,将所有元素加到第一个元素中。7.已知一个数组A,将奇数位置元素存到B数组中,偶数元素存到C数组中。 */public class ArrayExe01 {   public static void main(String[] args) {  int array [] = {2,432,5221,235,2,5352,1,53,5,3,5364,2,2,63,3533,2,53,532,532};  Scanner scan = new Scanner(System.in);  int num = scan.nextInt();  if(num == 1){  System.out.println(ArrayExe01.getMidInfo(array));  }if(num == 2){  System.out.println(ArrayExe01.getSum(array));  }if(num == 3){  ArrayExe01.print(array);  }if(num == 4){  ArrayExe01.print1(array);  }if(num == 5){  System.out.println(ArrayExe01.getArray(array));  }if(num == 6){  System.out.println(ArrayExe01.getFirstSum(array));  }if(num == 7){  ArrayExe01.newArray(array);  }   }      // 1.当长度为偶数的时候取的是后面那个   public  static int getMidInfo(int array[]){   int length = array.length;   return array[length / 2];   }   // 2.数组为int类型   public static int getSum(int array[]){   int sum= 0;   for(int i =0 ;i< array.length;i++){   sum += array[i];   }   return sum;   }   // 3.循环步进为2即可   public static void print(int array[]){   for (int i = 0; i < array.length; i+=2) {       System.out.println(array[i]);    }   }   // 4.数组为int类型   public static void print1(int array[]){   for (int i = 0; i < array.length; i++) {       if(array[i] % 2 == 0){       System.out.println(array[i]);       }    }   }      // 5.将参数的副本作为返回值再次回传   public static int[]  getArray(int array[]){   for(int i =0 ;i < array.length;i++){   array[i] = array[i] * 2;   }   return array;   }   // 6.返回第一个元素的值   public static int getFirstSum(int array[]){   int one = array[0];   for(int i = 1 ;i< array.length;i++){   one = one + array[i];   }   return one;   }   // 7.只作为输出   public static void newArray(int array[]){   for(int i =0 ;i<array.length;i++){  if(array[i] % 2==0){  System.out.println("偶数: "+array[i]);  }else{  System.out.println("奇数: "+array[i]);  }   }   } }

实例代码二:

package cn.com.blog.array;import java.util.Random;/** *  * @author fcs * 2014年9月12日 * ArrayExe02 * 说明: * 1.把A数组的前5个元素复制到B数组中。2.把1----36分别放入数组中,计算数组对角元素之和。6 * 6的数组3.判断一个数组是否对称。4.有一个长度是10的数组,数组内有10个不重复的数字,要求按从大到小排序。5.有一个长度是10的数组,要求删除某一个位置的元素,后边元素前置。6.有一个长度是10的数组,按递增排列,用户输入一个数,插入适当位置。7.有一个长度是10的数组,数组内有10个人名,要求去掉重复的8.把A数组的第三到第六位之间的元素删除。9.已知A数组,B数组,定义一个数组C,要求C包含A,B数组中的数据(无重复值)。 */public class ArrayExe02 {    public static void main(String[] args) {    int array [] = {2,4,1,5,6,7,3,8,9,0};    ArrayExe02.sortArray(array);    Random rand = new Random();    int array1 [] = new int [12];    for(int i = 0;i< 10;i++){    array1[i] = rand.nextInt(10);     }        System.out.println("------------------------------------");    ArrayExe02.insert(array1, 10);    System.out.println("------------------------------------");    int array2 [] = new int [10];    for(int i =0;i< 10;i++){    array2[i] = rand.nextInt(10);    }    ArrayExe02.deleteRe(array2);        ArrayExe02.getSum1(array1, array2);    }    //1.注意数组下标越界    public static int [] newArry(int array[]){    int narr [] = new int [5];    int length = array.length > 5 ? 5 : array.length;        for(int i =0 ;i< 5;i++){        narr[i] = array[i];        }        return narr;    }    //2.for循环赋值    public static int getSum(){    int array [][] = new int [6][6];    int  num = 0;    for(int i =0 ;i < 6;i++){    for(int j = 0;j < 6;j++ ){    array[i][j] = num++;    }    }    int sum = 0;    for(int i =0;i < 6;i++){    for(int j =0 ;j< 6;j++){    if(i==j || i+j == 5){    sum += array[i][j];    }    }    }    return sum ;    }    //3数组的对称问题    public static void getMId(){    //一维数组        //二维数组的对称矩阵         int array [] = {1,2,3,4,4,3,2,1};        boolean b = false;        for(int i =0 ;i< array.length / 2;i++){        if(array[i] != array[array.length - i]){             b = true;        }        }        if(b){        System.out.println("不是对称数组");        }else{        System.out.println("是对称数组");        }        boolean b1 = false;        int array1 [] [] =  {{1,2,3,4},{2,1,4,3},{3,4,1,2},{4,3,2,1}};        for(int i =0 ;i<4;i++){        for(int j = 0;j < i;j++){        if(array1[i][j] != array1[j][i]){        b1 = true;        }        }        }        if(b1){        System.out.println("不是对称数组");        }else{        System.out.println("是对称数组");        }        //还有一种情况,在此不做讨论。    }    //4.数组的排序问题,这里使用冒泡排序    public static void sortArray(int array[]){    for(int  i =0 ;i < array.length -1;i++){    for(int  j = i;j < array.length;j++ ){    if(array[i] < array[j]){    int temp = array[i];    array[i] = array[j];    array[j] = temp;    }    }    }    for(int i = 0;i< array.length;i++){    System.out.println(array[i]);    }    }    //5.数组的删除操作    public static void delete(int array[],int index){    if(array.length  <=  index){    System.out.println("数组下标错误。。。。");        return;    }    int a = array[index];    for(int i = index+1;i<array.length;i++){    array[i - 1] = array[i];    }    for(int i =0 ;i< array.length;i++){    System.out.println(array[i]);    }    }    //6.数组的插入    public static void insert(int array [],int value){    array[10] = value;    for(int  i =0 ;i < 11;i++){    for(int  j = i;j < array.length;j++ ){    if(array[i] > array[j]){    int temp = array[i];    array[i] = array[j];    array[j] = temp;    }    }    }    for(int i =0 ;i<array.length;i++){    System.out.print(array[i]+" , ");    }    }        //7.去除重复元素    public static void deleteRe(int array [] ){    for(int i =0 ;i<array.length;i++){    System.out.print(array[i]+" , ");    }    boolean brr [] = new boolean [array.length];;    for(int i =0 ;i < array.length - 1 ;i++ ){            for(int j = i+1;j< array.length;j ++){                    if(array[i] == array[j] && brr[j] != true){                    brr[j] = true;                    }            }       }    System.out.println("--------------------");    for(int i =0 ;i< array.length;i++){    if(brr[i] ==false){    System.out.print(array[i]+" , ");    }    }    }        //8.采用数组的赋值    public static void deleteTo(int array [] ){    for(int i =0 ;i<array.length;i++){    if(i < 2 && i > 5){    System.out.print(array[i]+" , ");    }        }    }    //9.先合并再去除重复元素    public static void   getSum1(int A [],int B[]){    System.out.println("9.先合并再去除重复元素");    int array [] = new int [A.length+B.length];    for(int i =0;i<array.length;i++){    if(i < A.length){    array[i] = A[i];    }else{    array[i] = B[i - A.length];    }    }     deleteRe(array);    }}

其实很多不大的项目或者题目中,数组通常会很有帮助,而且简单易用,这里只是列出一些比较浅显的题目和自己的测试。


 


0 0
原创粉丝点击