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; }