C++二级:计算矩阵边缘元素之和
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入
第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。 接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。
输出
输出对应矩阵的边缘元素和
样例输入
3 3
3 4 1
3 7 1
2 0 1
样例输出
15
#include<stdio.h>
#include<stdlib.h>
int main()
{
int m,n;//矩阵的长和宽
int sum = 0;
printf("输入矩阵的长和宽\n");
scanf("%d%d",&m,&n);
int a[m][n];//存储矩阵的值
//为矩阵赋值
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
scanf("%d",&a[i][j]);
//打印矩阵
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
//计算首尾两行:行的话就是第一行a[0][?],最后一行a[m-1][?] ,然后以列循环求和0-n
for(int i=0;i<n;i++)
sum = sum+a[0][i]+a[m-1][i];
//计算首尾两列:列的话就是第一列a[?][0],最后一列a[?][n-1],然后以行循环求和1-n-1
//注意要去掉第一行和最后一行,这两个是重复的
for(int j=1;j<m-1;j++)
sum = sum+a[j][0]+a[j][n-1];
printf("矩阵边缘元素之和sum=%d\n",sum);
return 0;
}