您的位置:首页 > 运维架构

【OpenJudge】计算矩阵边缘元素之和

2017-01-21 18:14 302 查看

4:计算矩阵边缘元素之和

查看
提交
统计
提问

总时间限制: 1000ms 内存限制: 65536kB
描述

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

输入第一行为整数k,表示有k组数据。

每组数据有多行组成,表示一个矩阵:

第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以空格分隔。

接下来输入的m行数据中,每行包含n个整数,整数之间以空格作为间隔。
输出输出对应矩阵的边缘元素和,一个一行。
样例输入
2
4 4
1 1 1 1
0 0 0 0
1 0 1 0
0 0 0 0
3 3
3 4 1
3 7 1
2 0 1


样例输出
5
15
/*
输入一个整数矩阵,计算位于矩阵边缘的元素之和,

输入:第一行是整数k  表示  有k组数组
第二行是矩阵的行数和列数。   都<100

*/
#include<stdio.h>
#define N 100

int main()
{
int n;//有几组数组
int i = 0; //行
int j = 0;  //列
int a

;
int (*pa)
= a;
int sum = 0;
scanf("%d",&n);

for(int k=0;k<n;k++)
{
scanf("%d %d",&i,&j);//几行几列
for(int p = 0; p < i; p++)
for(int q = 0;q < j;q++)
scanf("%d",*(pa+p)+q);   //
for(int p = 0; p < i; p++)
for(int q = 0;q < j;q++)
{
if(p==0)
sum += *(*(pa+p)+q);
else if(q==0||q==(j-1))
sum+=*(*(pa+p)+q);
else if(p==i-1)
sum+=*(*(pa+p)+q);
}
printf("%d\n",sum);
sum = 0;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: