C語言實驗——矩陣下三角元素之和
阿新 • • 發佈:2019-01-02
C語言實驗——矩陣下三角元素之和
***此題的目的是 訓練指標的使用 ***
Problem Description
輸入一個正整數n(1<=n<=10),再輸入n*n的矩陣,要求求該矩陣的下三角元素之和。
Input
輸入包括n+1行。
第一行為整數n;
接下來的n行為矩陣資料。
Output
矩陣的下三角元素之和。
Sample Input
5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
Sample Output
75
Hint
Source
#include <stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> int main() { int n, i, j; scanf("%d", &n); int a[11][11]; memset(a, 0, sizeof(a)); for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { //a是二維陣列首元素的地址,代表的是首行a[0] 的起始地址&a[0],a + i代表a[i]行的首地址, 即a[i] scanf("%d", (*(a + i) + j)); }//二維陣列中元素a[i][j]的地址為 *(a + i) + j }//a + i為行指標,等於&a[i] int sum = 0; for(i = 0; i < n; i++) { for(j = 0; j <= i; j++) { sum += *(*(a + i) + j); }//元素a[i][j]的值表示為 *(*(a + i) + j) } printf("%d\n", sum); return 0; } 這道題中的指標變數還可以有多種變換 例如: 元素a[i][j]的地址表示為: (1)&a[i][j] (2) a[i]+j (3) *(a+i)+j 元素a[i][j]的值表示為: (1)a[i][j] (2) *(a[i] +j) (3) *(*(a+i)+j) a是二維陣列首元素的地址,代表的是首行a[0]的起始地址&a[0]。 a+i代表a[i]行的首地址,即&a[i] !!!請特別注意