二维数组相关练习题

一、已知二维数组数据 int [][] nums={{1,2,3},{4,5,6},{7,8,9}};输出所有数据

public static void main(String[] args) {
	int[][] nums= {{1,2,3},{4,5,6},{7,8,9}};
	for (int i = 0; i < nums.length; i++) {
		for (int j = 0; j < nums[i].length; j++) {
			System.out.print(nums[i][j]+" ");
		}
		System.out.println();
	}
}

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

public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入第一行数据第一个数据");
	int h1l1=sc.nextInt();
	System.out.println("请输入第一行数据第二个数据");
	int h1l2=sc.nextInt();
	System.out.println("请输入第一行数据第三个数据");
	int h1l3=sc.nextInt();
	System.out.println("请输入第一行数据第四个数据");
	int h1l4=sc.nextInt();
	System.out.println("请输入第二行数据第一个数据");
	int h2l1=sc.nextInt();
	System.out.println("请输入第二行数据第二个数据");
	int h2l2=sc.nextInt();
	System.out.println("请输入第二行数据第三个数据");
	int h2l3=sc.nextInt();
	System.out.println("请输入第二行数据第四个数据");
	int h2l4=sc.nextInt();
	System.out.println("请输入第三行数据第一个数据");
	int h3l1=sc.nextInt();
	System.out.println("请输入第三行数据第二个数据");
	int h3l2=sc.nextInt();
	System.out.println("请输入第三行数据第三个数据");
	int h3l3=sc.nextInt();
	System.out.println("请输入第三行数据第四个数据");
	int h3l4=sc.nextInt();
	System.out.println("请输入第四行数据第一个数据");
	int h4l1=sc.nextInt();
	System.out.println("请输入第四行数据第二个数据");
	int h4l2=sc.nextInt();
	System.out.println("请输入第四行数据第三个数据");
	int h4l3=sc.nextInt();
	System.out.println("请输入第四行数据第四个数据");
	int h4l4=sc.nextInt();
	int[][] a=new int[4][4];
	a [0][0]=h1l1;
	a [0][1]=h1l2;
	a [0][2]=h1l3;
	a [0][3]=h1l4;
	a [1][0]=h2l1;
	a [1][1]=h2l2;
	a [1][2]=h2l3;
	a [1][3]=h2l4;
	a [2][0]=h3l1;
	a [2][1]=h3l2;
	a [2][2]=h3l3;
	a [2][3]=h3l4;
	a [3][0]=h4l1;
	a [3][1]=h4l2;
	a [3][2]=h4l3;
	a [3][3]=h4l4;
	int[] temp=new int[4];
	int[] temp2=new int[4];
	for (int i = 0; i < a.length; i++) {
		temp[i]=a[0][i];
		a[0][i]=a[3][i];
		a[3][i]=temp[i];
		temp2[i]=a[1][i];
		a[1][i]=a[2][i];
		a[2][i]=temp2[i];
		
	}
	for (int i = 0; i < a.length; i++) {
		for (int j = 0; j < a[i].length; j++) {
			System.out.print(a[i][j]+" ");
		}
		System.out.println();
	}
}
另一种方式:
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int[][] a=new int[4][4];
	for (int i = 0; i < a.length; i++) {
		
		 for (int j = 0; j < a.length; j++) {
			 System.out.print("请输入第"+(i+1)+"行");
			System.out.println("第"+(j+1)+"个数:");
			a[i][j]=sc.nextInt();
		}
	}
	  System.out.println("输入的矩阵为:");
      for (int i = 0; i < a.length; i++) {        
          for (int j = 0; j < a[i].length; j++) {
              System.out.print(a[i][j]+" ");
          }
          System.out.println();
      }
      int[] temp=new int[4];
      int[] temp2=new int[4];
      for (int i = 0; i < a.length; i++) {
    	  temp[i]=a[3][i];
    	  a[3][i]=a[0][i];
    	  a[0][i]=temp[i];
    	  
    	  temp2[i]=a[2][i];
    	  a[2][i]=a[1][i];
    	  a[1][i]=temp2[i];
      }
      System.out.println("更换后的矩阵为:");
      for (int i = 0; i < a.length; i++) {
		for (int j = 0; j < a[i].length; j++) {
			System.out.print(a[i][j]+" ");
		}
		System.out.println();
	}
}

 

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

public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("请定义一个长度N");
	int N=sc.nextInt();
	int[][] a=new int[N][N];
	//开始输入数据
	for (int i = 0; i < a.length; i++) {
		for (int j = 0; j < a[i].length; j++) {
			System.out.println("请输入第"+(i+1)+"行"+"第"+(j+1)+"个数字");
			a[i][j]=sc.nextInt();
		}
	}
	//新建一个收数据的一维数组
	int[] b=new int[N];
	//读取输入的数字 并且找最大值
	for (int i = 0; i < a.length; i++) {
		int max=a[i][0];//假设第i行的第一个是最大的
		for (int j = 0; j < a[i].length; j++) {
			if (a[i][j]>max) {
				max=a[i][j];
			}
		}
		b[i]=max;
	}
	System.out.println("每一行最大值组成的数是");
	for (int i = 0; i < b.length; i++) {
		
		System.out.print(b[i]+" ");
	}
	System.out.println();
}

四、打印杨辉三角
        1
        1 1    
        1 2 1
        1 3 3 1
        1 4 6 4 1 
        1 5 10 10 5 1

public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入一个高度");
	int N=sc.nextInt();
	int a [][]=new int[N][N];
	//填数字
	for (int i = 0; i < a.length; i++) {
		a[i][i]=1;//控制斜着的1
		a[i][0]=1;//控制竖着的1
	}
	//再写计算的数字了
	for (int i = 2; i < a.length; i++) {//控制行数
		for (int j = 1; j < i; j++) {//控制除了1以外,里面数字的个数
			a[i][j]= a[i-1][j]+a[i-1][j-1];
		}
	}
	//输出数字
	for (int i = 0; i < a.length; i++) {
		for (int j = 0; j <=i; j++) {
			System.out.print(a[i][j]);
		}
		System.out.println();
	}
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值