• lesson12Homework


    package StringPractice;

     

    public class arrayTest {

    //1. 把A数组的前5个元素复制到B数组中。

      

       public static void main(String[] args) {

         

          int arrA[]={1,2,3,4,5,6};

          int arrB[]=new int[5];

          for(int i=0;i<5;i++){

             arrB[i]=arrA[i];//把前五位赋值给数组arrB

          }

          for(int i=0;i<arrA.length;i++){

             System.out.println("arrA["+i+"]="+arrA[i]);

          }

          for(int i=0;i<arrB.length;i++){

             System.out.println("arrB["+i+"]="+arrB[i]);

          }

       }

     

    }

     

     

    /**

     * 2. 有一个长度是10的数组,数组内有10个不重复的数字,要求按从大到小排序。

     * @param args

     */

     

    package StringPractice;

     

    import java.util.Random;

     

    public class Array02 {

     

       public static void main(String[] args) {

          int arr[]=new int[10];

          Random rand=new Random();

          for(int i=0;i<arr.length;i++){

             arr[i]=rand.nextInt(100);//在0到100的数中随机进行对数组赋值

             System.out.print(arr[i]+" ");

          }

         

          System.out.println();

          //使用冒泡法进行对数组的值进行从小到大进行排序

          for(int i=arr.length;i>0;i--){

            

             for(int j=0;j<i-1;j++){

                if (arr[j]>arr[j+1]){

                int temp=arr[j];

                arr[j]=arr[j+1];

                arr[j+1]=temp;

                }

             }

          }

          for(int i=0;i<arr.length;i++){

             System.out.print(arr[i]+" ");

          }

       }

     

    }

    /**

     * 3. 有一个长度是10的数组,要求删除某一个位置的元素,后边元素前置。

     */

    package StringPractice;

     

    import java.util.Scanner;

     

    public class Array03 {

     

       public static void main(String[] args) {

         

          Scanner scanner=new Scanner(System.in);

          System.out.println("请输入您要删除的元素的位置:");

          int a=scanner.nextInt();

           

          int []arr=new int[]{1,2,3,4,5,6,7,89,0,7};

          for(int i=a-1;i<arr.length-1;i++){

             arr[i]=arr[i+1];//把后一个元素的值赋给前一个

          }

             arr[9]=0;

             for(int i=0;i<9;i++){

                System.out.print(arr[i]+" ");

             }

       }

     

    }

    package StringPractice;

    /**

     * 4. 有一个长度是10的数组,按递增排列,用户输入一个数,插入适当位置。

     * @author liyinxia

     *

     */

    import java.util.Scanner;

     

    public class Array04 {

      

       public static void main(String[] args) {

         

          // TODO Auto-generated method stub

          int []arr=new int[]{2,1,2,7,5,9,6,7,89,3,7};

          int len=arr.length;

          int []arr1=new int[len+1];

          Scanner scanner=new Scanner(System.in);

          System.out.println("请您输入一个数:");

          int insert=scanner.nextInt();

         

          //冒泡排序

          for(int i=arr.length;i>0;i--){

            

             for(int j=0;j<i-1;j++){

                if (arr[j]>arr[j+1]){

                int temp=arr[j];

                arr[j]=arr[j+1];

                arr[j+1]=temp;

                }

             }

          }

         

          /**

           * 进行插入操作

           */

          for (int i=0;i<len;i++){

             if(arr[i]<=insert){

                continue;}

             else{

                for(int j=0;j<=i;j++){

                    arr1[j]=arr[j];

                }

                arr[i]=insert;

                for(int k=i+1;k<len+1;k++,i++){

                    arr1[k]=arr[i];

                }

             }

          }

      

          for(int j=0;j<len+1;j++){

             System.out.print(arr1[j]+" ");

          }

       }

     

    }

     

    //5. 有一个长度是10的数组,数组内有10个数字,要求去掉重复的

     

    package ArrayPractice;

     

    import java.util.Arrays;

    import java.util.Random;

     

    public class OneArray_5 {

      

       public static int[] trim(int array[]){

          int len=array.length;           //获得传入数组的长度

          int brray[]=new int[len];       //声明一个数组,长度为传入数组的长度          

      

          int newlen=len;

          for(int i=0;i<len;i++){               //初始化brray

             brray[i]=0;

          }

          for(int j=1;j<len;j++){

             if(array[j]==array[j-1]){       //记录重复的值

                brray[j]=1;

                newlen--;

             } 

          }

          int newarray[]=new int[newlen];//声明一个数组,长度为除去重复数字的个数

          int newId=0;

          for(int k=0;k<len;k++){

             if(brray[k]==0){

                newarray[newId++]=array[k];

               

             }

          }

          return newarray;//返回的是一个数组

       }

     

       public static void main(String[] args){

          Random rd=new Random();

          int[]array=new int[10];

          for(int i=0;i<array.length;i++){

             array[i]=rd.nextInt(20);

             System.out.print(array[i]+" ");

             /*if((i+1)%5==0){

                System.out.println();

             }*/

          }

          Arrays.sort(array);

          for(int i=0;i<array.length;i++){

             System.out.print(array[i]+" ");

             /*if((i+1)%5==0){

                System.out.println();

                }*/

          }

          int c[]=trim(array);

          System.out.println("去除重复数字后的结果:");

          for(int i=0;i<c.length;i++){

             System.out.print(array[i]+" ");

             /*if((i+1)%5==0){

                System.out.println();

                }*/

          }

      

       }

    }

    //6. 把A数组的第三到第六位之间的元素删除。

    package ArrayPractice;

     

    public class Array06 {

       public static int[] trim(int array[]){

          int len=array.length;

          int brray[]=new int[len];

          for(int i=0;i<len;i++){

             brray[i]=0;

          }

          int newlen=len;

          for(int j=0;j<len;j++){

             if(j>=2&&j<=5){

                brray[j]=1;

                newlen--;

             }

          }

          int newId=0;

          int newArray[]=new int[newlen];

          for(int k=0;k<len;k++){

             if(brray[k]==0){

                newArray[newId++]=array[k];

             }

          }

          return newArray;

       }

       public static void main(String[] args){

          int []arr=new int[]{1,2,3,4,5,6,7,89,0,7};

          int c[]=trim(arr);

          for(int i=0;i<c.length;i++){

             System.out.print(c[i]+" ");

          }

       }

    }

    /**

     * 7. 已知A数组,B数组,定义一个数组C,要求C包含A,B数组中的数据(无重复值)。

     */

    package StringPractice;

     

    import java.util.Arrays;

     

    import java.util.Random;

     

    import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;

     

    public class OneArray_07 {

       /**

        * 将两个数组合并到一个数组中

        * @param a

        * @param b

        * @return

        */

       public static int[] combineArray(int a[],int b[]){

          int a1=a.length;

          int b1=b.length;

          int length=a1+b1;

          int i,j;

          System.out.println("a数组的元素如下");

          for( i=0;i<a1;i++){

             System.out.print(a[i]+" ");

          } 

          System.out.println();

          System.out.println("b数组的元素如下");

          for( i=0;i<b1;i++){

             System.out.print(b[i]+" ");

            

          }

          int newarray[]=new int[length];

          for(i=0,j=0;i<a1&&j<b1;){

             if(a[i]<b[j]){

                newarray[i+j]=a[i];

                i++;

             }

             else{

                newarray[i+j]=b[j];

                j++;

             }

             if(i==a1){

                System.arraycopy(b,j,newarray,a1+j,b1-j);//把b数组中的从下标为j开始,存放在newarray数组中,下标的变化

             }                                 //是从a1+j延续b1-j个数字              

             if(j==b1){

                System.arraycopy(a,i,newarray,b1+i,a1-i);

             }

            

          }

          return newarray;

       }

       /**

        * 去除重复的数字

        * @param array

        * @return

        */

       public static int[] trim(int array[]){

          int len=array.length;           //获得传入数组的长度

          int brray[]=new int[len];       //声明一个数组,长度为传入数组的长度          

      

          int newlen=len;

          for(int i=0;i<len;i++){               //初始化brray

             brray[i]=0;

          }

          for(int j=1;j<len;j++){

             if(array[j]==array[j-1]){       //记录重复的值

                brray[j]=1;

                newlen--;

             } 

          }

          int newarray[]=new int[newlen];//声明一个数组,长度为除去重复数字的个数

          int newId=0;

          for(int k=0;k<len;k++){

             if(brray[k]==0){

                newarray[newId++]=array[k];

               

             }

          }

          return newarray;//返回的是一个数组

       }

       //主函数

       public static void main(String[] args){

          Random rd=new Random();

          int arr1[] =new int[10];

          int arr2[]=new int[10];

          //对数组进行随机赋值

          for(int i=0;i<arr1.length;i++){

             arr1[i]=rd.nextInt(20);

          }

          for(int i=0;i<arr2.length;i++){

             arr2[i]=rd.nextInt(20);

          }

          /*//先对arr1和arr2数组进行排序

          Arrays.sort(arr1);

          Arrays.sort(arr2);*/

          //调用combineArray方法

          int newarr3[]=combineArray(arr1,arr2);

          System.out.println();

          System.out.println("输出合并后未排序的数组值:");

          for(int i=0;i<newarr3.length;i++){

             System.out.print(newarr3[i]+" ");

          }

          System.out.println();

          Arrays.sort(newarr3);

          System.out.println("输出合并后排序的数组值:");

          for(int i=0;i<newarr3.length;i++){

             System.out.print(newarr3[i]+" ");

          }

          System.out.println();

         

          //调用trim方法,去除重复数字

         

          int newarr4[]=trim(newarr3);

          System.out.println("输出最后的结果,合并后从小到大排列,且无重复数字:");

          for (int i=0;i<newarr4.length;i++){

             System.out.print(newarr4[i]+" ");

          }

       }

     

    }

     

    package StringPractice;

     

    public class Array08 {

       public static int DiagonalAdd(int array[][]){

          int len=array.length;

          int diagonal1=0;

          int diagonal2=0;

          int sum;

          /**

           * 将两条对角线进行相加

           */

          for(int i=0;i<len;i++){

             diagonal1+=array[i][i];

             diagonal2+=array[len-i-1][i];

          }

          if(len%2==0){

             sum=diagonal1+diagonal2;//判断没有相交,直接相加

          }

          else{

             sum=diagonal1+diagonal2-array[len/2][len/2];//判断有相交的值,需要减去相交的值

          }

          return sum;

       }

     

       public static void main(String[]args){

          int arr[][]=new int[6][6];

          int a=0;

          System.out.println("输出数组中的值:");

          for(int i=0;i<arr.length;i++){

             for(int j=0;j<arr[i].length;j++){

                arr[i][j]=a;

                a++;

                System.out.print(arr[i][j]+" ");

             }

             System.out.println();

         

          }

          //调用DiagonalAdd方法

          int sum=DiagonalAdd(arr);

          System.out.println("对角线的和是:"+sum);

       }

    }

    /**

     * 9. 判断一个数组是否对称

     */

    package StringPractice;

     

    public class Array09 {

       //将矩阵转置

       public static int[][] Transposition(int array[][]){

          int len=array.length;

          int brray[][]=new int[len][len];

          for(int i=0;i<len;i++){

             for(int j=0;j<len;j++){

                brray[j][i]=array[i][j];

             }

          }

          return brray;

       }

       //主方法

       public static void main(String[]args){

          int array[][]=new int[][]{{1,2},{2,1}};

          int brray[][]=Transposition(array);

          int i,j;

          boolean boo=true;

          for( i=0;i<array.length;i++){

             for( j=0;j<array[i].length;j++){

                if(array[i][j]!=brray[i][j]){

                    boo=false;

                    break;

                }

             }

          }

          if(boo){

             System.out.println("这个数组是对称的!!");

          }

          else{

             System.out.println("这个数组不是对称的!!");

          }

       }

    }

     

  • 相关阅读:
    2020-06-20 助教一周小结(第十七周)
    2020-06-14 助教一周小结(第十六周)
    2020-06-7助教一周小结(第14周)
    2020本科校招-从小白到拿到30k offer的学习经历
    2020-05-24助教一周小结(第13周)
    2020-05-17 助教一周小结(第十二周)
    2020-05-10 助教一周小结(第十一周)
    2020-05-04 助教一周小结(第十周)
    2020-04-26 助教一周小结(第九周)
    Ngnix搭建静态网页和安装wordpress
  • 原文地址:https://www.cnblogs.com/lyxcode/p/7279732.html
Copyright © 2020-2023  润新知