二维数组行列相加:建立二维数组并将其行列相加(类版)——java

package program;
import java.util.*;
public class test {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		int m,n;
		System.out.print("您建立的二维数组的行数:");
		m=reader.nextInt();
		System.out.print("您建立的二维数组的列数:");
		n=reader.nextInt();
		int[][] a=new int[m+1][n+1];
		
		for(int i=0;i<=n;i++)
			a[m][i]=0;
		for(int i=0;i<=m;i++)
			a[i][n]=0;
		B b=new B();
		b.aa(a,m,n);
		b.bb(a,m,n);
		b.cc(a,m,n);
		b.dd(a,m,n);
	}

}
class B
{
	Scanner reader=new Scanner(System.in);
	void aa(int[][] a,int m,int n)
	{
		m=m;
		n=n;
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<n;j++)
			{
				int y;
				System.out.print("a["+i+"]["+j+"]=");
				y=reader.nextInt();
				a[i][j]=y;
			}
		}
	}
	void bb(int[][] a,int m,int n)
	{
		m=m;
		n=n;
		System.out.println("你建立的二维数组是:");
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<n;j++)
			{
				
				System.out.print(a[i][j]+"   \t");
			}
			System.out.println();
		}
	}
	void cc(int[][] a,int m,int n)
	{
		m=m;
		n=n;
		System.out.println("行列相加后的结果:");
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<n;j++)
			{
				a[i][n]=a[i][n]+a[i][j];
			}
		}
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				a[m][i]=a[m][i]+a[j][i];
			}
		}
	}
	void dd(int[][] a,int m,int n)
	{
		m=m;
		n=n;
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<=n;j++)
			{			
				System.out.print(a[i][j]+"   \t");
			}
			System.out.println("\t");
		}
		for(int i=0;i<n;i++)
			System.out.print(a[m][i]+"   \t");
	}
}



在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 题目描述:给定一个m行n列的二维数组,求其周边元素的累加和。 解题思路:首先,我们可以先遍历二维数组,找到其四个边界,然后分别计算每个边界的元素之和,最后将四个边界的元素之和相加即可。 具体实现:我们可以使用两个for循环遍历二维数组,找到四个边界,然后使用两个for循环计算每个边界的元素之和,最后将四个边界的元素之和相加即可。 代码如下: ```python m, n = map(int, input().split()) a = [] for i in range(m): a.append(list(map(int, input().split()))) sum = for i in range(m): for j in range(n): if i == or i == m-1 or j == or j == n-1: sum += a[i][j] print(sum) ``` 注意:在计算边界元素之和时,需要注意边界元素只能计算一次,否则会重复计算。 ### 回答2: 题目要求我们求一个二维数组周边元素的累加和,首先我们需要明确什么是周边元素。 假设输入的二维数组为a,行数为m,列数为n,那么周边元素即为下面这些: 1. 第1行和最后1行,除了角落上那1个元素(即a[0][0]、a[0][n-1]、a[m-1][0]和a[m-1][n-1]),其它元素都要累加; 2. 第1列和最后1列,除了角落上那1个元素,其它元素都要累加。 思路清晰后,我们可以按照如下步骤编写程序: 1. 首先输入行数m和列数n,再输入二维数组的各个元素; 2. 然后定义一个sum变量,用来存储周边元素之和,初值赋为0; 3. 接着对二维数组的每个元素进行判断,如果该元素在周边范围内,则将其累加到sum中; 4. 最后输出sum即可。 以下是详细代码实现: ```python m = int(input("请输入行数m:")) n = int(input("请输入列数n:")) a = [] for i in range(m): row = [] for j in range(n): row.append(int(input("请输入a[%d][%d]的值:" % (i, j)))) a.append(row) sum = 0 for i in range(m): for j in range(n): if i == 0 or j == 0 or i == m-1 or j == n-1: if not (i == 0 and j == 0) and not (i == 0 and j == n-1) and not (i == m-1 and j == 0) and not (i == m-1 and j == n-1): sum += a[i][j] print("周边元素之和为:",sum) ``` 以上代码中,我们定义了一个二维列表a来存储输入的二维数组。接着定义了一个sum变量,并将其初值赋为0。 接下来的两个for循环,用来遍历二维数组中的每个元素。在遍历时,通过判断元素所处的位置,来判断是否为周边元素。如果是周边元素,则将其累加到sum中。 最后输出sum即可,完成了求解二维数组周边元素累加和的问题。 ### 回答3: 这道题需要注意边界情况,即对于二维数组四周的元素,有些是不存在的,需要进行特判。在解题之前先确定好二维数组的边界情况,可以定义4个变量left、right、top、bottom,分别代表二维数组四周的索引位置,初始化为0和n-1、0和m-1。然后使用两层循环遍历二维数组,对于每一个元素,判断其是否处于四周位置,对于处于四周位置的元素,将其值累加到结果变量中。最后输出结果即可。 代码如下: ```python m, n = map(int, input().split()) # 初始化二维数组 matrix = [] for i in range(m): row = list(map(int, input().split())) matrix.append(row) # 初始化边界索引 left, right, top, bottom = 0, n - 1, 0, m - 1 # 计算周边元素之和 sum = 0 for i in range(m): for j in range(n): if i == top or i == bottom or j == left or j == right: sum += matrix[i][j] if i == top and j == left: sum -= matrix[i][j] elif i == top and j == right: sum -= matrix[i][j] elif i == bottom and j == left: sum -= matrix[i][j] elif i == bottom and j == right: sum -= matrix[i][j] print(sum) ``` 这里需要注意,对于四个角的元素,需要将其减去一次,因为这些元素会被重复计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值