1. 程式人生 > >陣列_習題:編寫一個4*4矩陣元素對角線之和的程式

陣列_習題:編寫一個4*4矩陣元素對角線之和的程式

# include <stdio.h>

int main(void)
{
int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i, j, sum1, sum2;//定義sum1,sum2,分別存放兩條對線元素的和;
sum1=sum2=0;

for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
printf("%-5d", a[i][j]);// 輸出該陣列矩陣;
printf("\n");
}

printf("\n第一條對角線的元素值分別為:\n");
for(i=0; i<4; i++)
{
printf("a[%d][%d]=%-3d", i, i, a[i][i]);//列印第一條對角線的元素及其值;
sum1 += a[i][i]; //求出第一條對角線的元素和;
}
printf("\n其元素的和值為:%d\n", sum1);

printf("\n第二條對角線的元素值分別為:\n");

j = 3;//第二條對角線元素為a[0][3]、a[1][2]、a[2][1]、a[3][0],用j的值約束列的值;
for(i=0; i<4; i++)
{
printf("a[%d][%d]=%-3d", i, i+j, a[i][i+j]);//列印第二條對角線的元素及其值;
sum2 += a[i][i+j]; //求出第二條對角線的元素和;
j-=2; //第二條對角線元素列的值每次-1,但是行的值每次+1,所以j的值每次-2;
}
printf("\n其元素的和值為:%d\n", sum2);

printf("\n兩條對角線元素的和值為:%d\n", sum1+sum2);

return 0;
}

/* 該程式在VC++6.0中的執行結果如下:

------------------------

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

第一條對角線的元素值分別為:
a[0][0]=1 a[1][1]=6 a[2][2]=11 a[3][3]=16
其元素的和值為:34

第二條對角線的元素值分別為:
a[0][3]=4 a[1][2]=7 a[2][1]=10 a[3][0]=13
其元素的和值為:34

兩條對角線元素的和值為:68

------------------------