java基础编程题及答案数组

java基础编程题及答案数组01 对 10 个整数进行按照从小到大的顺序排序 public class Demo01 public static void main String args Scanner sc new Scanner System in 创建一个数组存储 10 个整数 int arr new int 10 遍历数组

大家好,我是讯享网,很高兴认识大家。



01:对10个整数进行按照从小到大的顺序排序 

public class Demo01 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       //创建一个数组存储10个整数
       int[] arr=new int[10];
       //遍历数组,接收用户输入的数存入数组
       for(int i=0;i<arr.length;i++){
           System.out.println("请输入第"+(i+1)+"个数据:");
           arr[i]=sc.nextInt();
       }
       //使用遍历,用固定位置的数和后面的数逐个比较,将最小的数筛选出来
       for(int j=0;j<arr.length;j++){
       for(int i=j+1;i<arr.length;i++){
           if(arr[i]<arr[j]){
               int min=arr[i];
               arr[i]=arr[j];
               arr[j]=min;
           }
       }

   }for(int i:arr){
           System.out.print(i+" ");
       }
   }
}

02:求一个3*3矩阵对角线元素之和

<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

public class Demo02 {
   public static void main(String[] args) {
       int[][] arr=new int[3][3];
       Scanner sc=new Scanner(System.in);
       //双重for循环输入矩阵每个位置的数
       for(int i=0;i<3;i++){
           for(int j=0;j<3;j++){
               System.out.println("请输入一个数:");
               arr[i][j]=sc.nextInt();
           }
       }
       //将对角数相加
       int sum=arr[0][0]+arr[0][2]+arr[2][0]+arr[2][2];
       System.out.println("矩阵对角线之和为:"+sum);


   }
}

03:有一个已经按升序排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 

<提示>程序分析:首先判断此数第一次小于数组中哪个元素,然后将此数插入,插入后此元素之后的数,依次后移一个位置。

 public class Demo03 {
   public static void main(String[] args) {
           int ar[]={1,2,3,4,5};
           int[] arr=new int[ar.length+1];
           Scanner sc=new Scanner(System.in);
           for(int i:ar){
               System.out.print(i+" ");
           }
           System.out.println();
     //接收用户输入的数据,把它存到新数组的最后一位
           System.out.println("请输入想插入的数据:");
           int num=sc.nextInt();
           arr[arr.length-1]=num;
      //将老数组存入新数组中
           for(int i=0;i<ar.length;i++){
               arr[i]=ar[i];
           }
           //遍历数组,将最后一个数与前面每个数比较,如果那个数比最后一个数大,则将数据与后一位交换
           for(int i=arr.length-2;i>=0;i--){
               if(num<arr[i]){
                   int a=arr[i];
                   arr[i]=arr[i+1];
                   arr[i+1]=a;
               }
           }
           for(int i:arr){
               System.out.print(i+" ");
           }

       }
   }

04:将一个数组逆序输出。 

public class Demo04 {
   public static void main(String[] args) {
       int[] arr={1,2,3,4,5,6};
       //逆序遍历数组输出
           for(int j=arr.length-1;j>=0;j--){
               System.out.print(arr[j]+" ");
           }
       }
   }

05:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 

public class Demo05 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int[] arr=new int[6];
       //遍历数组存储数据
       for(int i=0;i<arr.length;i++){
           System.out.println("请输入第"+(i+1)+"个数");
           arr[i]=sc.nextInt();
       }
       //找到数组中最大(最小)的数据
       int max=arr[0];
       int min=arr[arr.length-1];
       for(int i=1;i<arr.length;i++){
           if(max<arr[i]) {
               max = arr[i];
           }else if(min>arr[i]){
                   min=arr[i];
               }
           }
       //找到最大数和最小数的位置,并与第一个(最后)一个元素交换位置
       for(int i=0;i<arr.length;i++){
           if(max==arr[i]){
               arr[i]=arr[0];
               arr[0]=max;
           }else if(min==arr[i]){
               arr[i]=arr[arr.length-1];
               arr[arr.length-1]=min;

           }
       }
       for(int i:arr){
           System.out.print(i+" ");
       }

   }
}

06:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

public class Demo06 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       System.out.println("请输入想输入整数的个数:");
       int[] arr=new int[sc.nextInt()];
       System.out.println("输入向后移的位数:");
       int m=sc.nextInt();
       //将键盘录入数存入数组
       for(int i=0;i<arr.length;i++){
           System.out.println("请输入第"+(i+1)+"个数:");
           arr[i]=sc.nextInt();
       }
       for(int i:arr){
           System.out.print(i+" ");
       }
       int[] newArr=new int[arr.length];
       //将后面m个数存到前面,把前面你n-m个数放到后面
       for(int i=0;i<arr.length;i++){
           if(m+i-1<arr.length) {
               newArr[i] = arr[m +i-1];
           }else{
               newArr[i]=arr[m+i-1-arr.length];
           }

       }
       System.out.println();
       for(int i:newArr){
           System.out.print(i+" ");
       }
   }}

07:定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1行和第4行的数据进行交换,将第2行和第3行的数据进行交换

public class Demo07 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int[][] arr=new int[4][4];
//创建数组接受用户输入的数据
       for(int i=0;i<4;i++){
           for(int j=0;j<4;j++){
               System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
               arr[i][j]=sc.nextInt();
           }
       }
       //输出原数组
       for(int i=0;i<4;i++){
           for(int j=0;j<4;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }
       System.out.println("--------------------------");
       //第1行和第4行的数据进行交换,第2行和第3行的数据进行交换
       for(int j=0;j<4;j++){
           int num1=arr[0][j];
           arr[0][j]=arr[3][j];
           arr[3][j]=num1;

           int num2=arr[1][j];
           arr[1][j]=arr[2][j];
           arr[2][j]=num2;
       }
       //输出新数组
       for(int i=0;i<4;i++){
           for(int j=0;j<4;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }
   }
}

08:定义一个3行4列的二维数组,逐个从键盘输入值,编写程序将四周的数据清0

public class Demo08 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int[][] arr=new int[3][4];
//创建数组接受用户输入的数据
       for(int i=0;i<3;i++){
           for(int j=0;j<4;j++){
               System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
               arr[i][j]=sc.nextInt();
           }
       }
       //输出原数组
       for(int i=java基础编程题及答案数组0;i<3;i++){
           for(int j=0;j<4;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }
       System.out.println("------------------------------");
       //将数组中行1或3,列为1或4的数据置0
       for(int i=0;i<3;i++) {
           for (int j = 0; j < 4; j++) {
               if (i == 0 || j == 0||i==2||j==3) {
                   arr[i][j] = 0;
               }
           }
       }
       //输出新数组
           for(int i=0;i<3;i++){
               for(int j=0;j<4;j++){
                   System.out.print(arr[i][j]+" ");
               }
               System.out.println();
           }



   }
}

09:定义一个3行4列的二维数组,逐个从键盘输入值,将左下三角的值清0

public class Demo09 {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int[][] arr=new int[3][4];
//创建数组接受用户输入的数据
       for(int i=0;i<3;i++){
           for(int j=0;j<4;j++){
               System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
               arr[i][j]=sc.nextInt();
           }
       }
       //输出原数组
       for(int i=0;i<3;i++){
           for(int j=0;j<4;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }
       System.out.println("------------------------------");
       //将数组左下三角的值清0
       for(int i=0;i<3;i++) {
           for (int j = 0; j <= i; j++) {
                   arr[i][j] = 0;
           }
       }
       //输出新数组
       for(int i=0;i<3;i++){
           for(int j=0;j<4;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }



   }
}

10:定义一个4行4列的二维数组,逐个从键盘输入值,将对角线的值清0

public class Demo10 {

       public static void main(String[] args) {
           Scanner sc=new Scanner(System.in);
           int[][] arr=new int[4][4];
//创建数组接受用户输入的数据
           for(int i=0;i<4;i++){
               for(int j=0;j<4;j++){
                   System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
                   arr[i][j]=sc.nextInt();
               }
           }
           //输出原数组
           for(int i=0;i<4;i++){
               for(int j=0;j<4;j++){
                   System.out.print(arr[i][j]+" ");
               }
               System.out.println();
           }
           System.out.println("------------------------------");
           //将数组中行1或3,列为1或4的数据置0
           for(int i=0;i<4;i++) {
               for (int j = 0; j < 4; j++) {
                   if (i ==j||i+j==3) {
                       arr[i][j] = 0;
                   }
               }
           }
           //输出新数组
           for(int i=0;i<4;i++){
               for(int j=0;j<4;j++){
                   System.out.print(arr[i][j]+" ");
               }
               System.out.println();
           }



       }
   }

11:定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;

public class Demo11{

   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);

       System.out.println("请输入想要创造矩阵的行列数:");
       int n=sc.nextInt();
       int[][] arr=new int[n][n];
//创建数组接受用户输入的数据
       for(int i=0;i<n;i++){
           for(int j=0;j<n;j++){
               System.out.println("请输入第"+(i+1)+"行"+(j+1)+"列的数:");
               arr[i][j]=sc.nextInt();
           }
       }
       //输出原数组
       for(int i=0;i<n;i++){
           for(int j=0;j<n;j++){
               System.out.print(arr[i][j]+" ");
           }
           System.out.println();
       }
       System.out.println("------------------------------");
       //创建空的新数组
       int[] newArr=new int[n];
       for(int i=0;i<n;i++) {
           for (int j = 0; j < n; j++) {
               int max=arr[i][0];
               if (max<arr[i][j]) {
                   max=arr[i][j];
               }newArr[i]=max;//将每行最大的数存到新数组中
           }
       }
       //输出新数组
       for(int i=0;i<n;i++){

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

       }



   }

12:从键盘上输入一个 3*4 的整型数组,求出其中的最大值和最小值,并显示出

public class Demo12 {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int[][] arr = new int[3][4];
//创建数组接受用户输入的数据
       for (int i = 0; i < 3; i++) {
           for (int j = 0; j < 4; j++) {
               System.out.println("请输入第" + (i + 1) + "行" + (j + 1) + "列的数:");
               arr[i][j] = sc.nextInt();
           }
       }
       //输出原数组
       for (int i = 0; i < 3; i++) {
           for (int j = 0; j < 4; j++) {
               System.out.print(arr[i][j] + " ");
           }
           System.out.println();
       }
       System.out.println("------------------------------");

       int max=arr[0][0];
       int min=arr[0][0];
       for (int i = 0; i < 3; i++) {
           for (int j = 0; j < 4; j++) {
               if(max<arr[i][j]){
                   max=arr[i][j];
               }else if(min>arr[i][j]){
                   min=arr[i][j];
               }
           }
       }
       System.out.println("数组中最大的数是"+max);
       System.out.println("数组中最小的数是"+min);
   }
}

13:有10个数字要求分别用选择法和冒泡法从大到小输出

public class Demo13 {
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int[] arr = new int[10];

       for (int i = 0; i < arr.length; i++) {
           System.out.println("请输入第" + (i + 1) + "个数:");
           arr[i] = sc.nextInt();
       }

       //选择法,将后面最大的数选出来,交换两个数位置
       for (int i = 0; i < arr.length; i++) {
           int max = arr[i];
           int num=i;
           for (int j = i; j < arr.length; j++) {
               if (max < arr[j]) {
                   max = arr[j];
                   num=j;
               }
           }arr[num]=arr[i];
           arr[i]=max;
           
       }
           for (int i : arr) {
               System.out.print(i + " ");
           }

           System.out.println();
           System.out.println("------------------------------");
//冒泡法,每个数都与后面每位比较,如果比后一位小则交换位置
           for (int i = 0; i < arr.length - 1; i++) {
               for (int j = i; j < arr.length - i - 1; j++) {
                   if (arr[j] < arr[j + 1]) {
                       int num = arr[j];
                       arr[j] = arr[j + 1];
                       arr[j + 1] = arr[j];
                   }
               }
           }
           for (int i : arr) {
               System.out.print(i + " ");
           }

       }
   }

小讯
上一篇 2024-12-29 18:53
下一篇 2024-12-25 08:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/1911.html