【OpenJudge】計算矩陣邊緣元素之和

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[N][N];
    int (*pa)[N] = 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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章