计算矩阵边缘元素之和

计算矩阵边缘元素之和

|-----------------------------|
| 💐The Begin💐点点关注,收藏不迷路💐 |

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入

第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。 接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。

输出

输出对应矩阵的边缘元素和

样例输入

c 复制代码
3 3
3 4 1
3 7 1
2 0 1

样例输出

c 复制代码
15

C语言代码

#include <stdio.h>

int main() {

int n, m;

scanf("%d %d", &n, &m); // 读取矩阵的行数n和列数m

复制代码
int matrix[n][m];  // 定义二维数组来存储矩阵元素

int sum = 0;  // 用于累加矩阵边缘元素之和,初始化为0

// 1. 读取矩阵的所有元素,并同时判断是否为边缘元素,若是则累加到总和中
for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
        scanf("%d", &matrix[i][j]);  // 逐行逐列读取矩阵元素

        if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {  // 判断当前元素是否在矩阵的边缘(第一行、最后一行、第一列、最后一列)
            sum += matrix[i][j];  // 如果是边缘元素,将其累加到总和中
        }
    }
}

printf("%d\n", sum);  // 输出矩阵边缘元素之和

return 0;

}

C++ 语言代码

#include <iostream>

using namespace std;

int main() {

int n, m;

cin >> n >> m; // 输入矩阵的行数n和列数m

复制代码
int matrix[n][m];  // 创建二维数组用于存储矩阵元素

int sum = 0;  // 初始化用于累加边缘元素之和的变量为0

// 1. 输入矩阵元素并判断是否为边缘元素,若是则累加
for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
        cin >> matrix[i][j];  // 依次输入矩阵的每个元素

        if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {  // 检查当前元素是否处于矩阵边缘(首行、尾行、首列、尾列)
            sum += matrix[i][j];  // 若是边缘元素,累加到总和中
        }
    }
}

cout << sum << endl;  // 输出矩阵边缘元素之和

return 0;

}

Java语言代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt(); // 获取矩阵的行数n

int m = scanner.nextInt(); // 获取矩阵的列数m

复制代码
    int[][] matrix = new int[n][m];  // 定义二维数组存储矩阵元素

    int sum = 0;  // 用于累加矩阵边缘元素之和,初始化为0

    // 1. 读取矩阵元素并判断是否为边缘元素,若是则累加
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            matrix[i][j] = scanner.nextInt();  // 逐行逐列读取矩阵元素并存入数组

            if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {  // 判断当前元素是否位于矩阵边缘(首行、尾行、首列、尾列)
                sum += matrix[i][j];  // 若为边缘元素,累加到总和中
            }
        }
    }
    System.out.println(sum);  // 输出矩阵边缘元素之和
}

}

Python语言代码

n, m = map(int, input().split()) // 获取输入的矩阵行数n和列数m

matrix = [list(map(int, input().split())) for _ in range(n)] // 获取输入的矩阵元素,构建二维列表

sum_ = 0 // 初始化用于累加矩阵边缘元素之和的变量为0

// 遍历矩阵元素,判断是否为边缘元素,若是则累加

for i in range(n):

for j in range(m):

if i == 0 or i == n - 1 or j == 0 or j == m - 1: // 判断当前元素是否在矩阵边缘(首行、尾行、首列、尾列)

sum_ += matrix[i][j] // 如果是边缘元素,累加到总和中

print(sum_) // 输出矩阵边缘元素之和

|---------------------------|
| 💐The End💐点点关注,收藏不迷路💐 |

相关推荐
刚入门的大一新生6 分钟前
归并排序延伸-非递归版本
算法·排序算法
独好紫罗兰10 分钟前
洛谷题单3-P1980 [NOIP 2013 普及组] 计数问题-python-流程图重构
开发语言·python·算法
独好紫罗兰15 分钟前
洛谷题单3-P1009 [NOIP 1998 普及组] 阶乘之和-python-流程图重构
开发语言·python·算法
Taichi呀16 分钟前
PHP语言基础
android·开发语言·php
曦月逸霜27 分钟前
蓝桥杯高频考点——高精度(含C++源码)
c++·算法·蓝桥杯
ゞ 正在缓冲99%…36 分钟前
leetcode152.乘积最大子数组
数据结构·算法·leetcode
Aerkui36 分钟前
Python数据类型-int
开发语言·python
莲动渔舟40 分钟前
Nyquist插件基础:LISP语法-自定义函数
服务器·开发语言·lisp·音频处理·audacity
敲上瘾43 分钟前
高并发内存池(二):Central Cache的实现
linux·服务器·c++·缓存·哈希算法
莲动渔舟1 小时前
Nyquist插件基础:LISP语法-运算符
开发语言·lisp·音频处理·audacity