C语言之基本算法35—数组上三角之积 主对角之积 副对角之积

//数组算法
/*
=============================================================
题目:求四阶矩阵上三角之积。主对角之积,副对角之积:
如:
8  3  6  5
0  4  3  2
0  6  1  5
7  0  0  2
上三角之积为:172800
主对角之积为:64
负对角之积为:630
=============================================================
*/
#include<stdio.h>
void main()
{
int i,j;
int ssj=1,zdj=1,fdj=1;
int a[4][4];
printf("输入4*4矩阵: ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("输出矩阵: ");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d  ",a[i][j]);
printf(" ");
}
printf("输出上三角之积:");
for(i=0;i<4;i++)
for(j=i;j<4;j++)
ssj*=a[i][j];
printf("%d ",ssj);

printf("主对角线之积:");
for(i=0;i<4;i++)
zdj*=a[i][i];
printf("%d ",zdj);

printf("副对角线之积:");
for(i=3;i>=0;i--)
fdj*=a[i][3-i];
printf("%d ",fdj);
}
/*
=============================================================
评:

上三角是主对角线上面的三角形,其条件应为:行从0到n-1,列从相应行数到n-1;即

(i=0;i<=n-1;i++) (j=i;j<=n-1;j++);主对角是从a[0][0]到a[n-1][n-1]的连线。其条件为:

行从0到n-1。列=行,(i=0;i<n-1;i++)相应乘积为a[i][i];同理,负对角是从a[n-1][0]到

a[0][n-1]的连线,其条件为:行从n-1到0,列=n-1-行,(i=n-1;i>=0;i--),乘积项为

a[i][n-1-i];分析清楚这些就easy解题了!事实上这个算法能够拓展到随意阶方阵的,读

者有兴趣能够自己完毕!

=============================================================
*/


原文地址:https://www.cnblogs.com/mengfanrong/p/5179510.html