C++二级:计算矩阵边缘元素之和

时间:2024-11-26 06:58:36

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入
第一行分别为矩阵的行数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;
}