您的位置:首页 > 编程语言 > C语言/C++

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

2016-02-03 13:36 555 查看
//数组算法

/*

=============================================================

题目:求四阶矩阵上三角之积。主对角之积,副对角之积:

如:

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矩阵:\n");

for(i=0;i<4;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("输出矩阵:\n");

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

printf("%3d ",a[i][j]);

printf("\n");

}

printf("输出上三角之积:");

for(i=0;i<4;i++)

for(j=i;j<4;j++)

ssj*=a[i][j];

printf("%d\n",ssj);

printf("主对角线之积:");

for(i=0;i<4;i++)

zdj*=a[i][i];

printf("%d\n",zdj);

printf("副对角线之积:");

for(i=3;i>=0;i--)

fdj*=a[i][3-i];

printf("%d\n",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解题了!事实上这个算法能够拓展到随意阶方阵的,读

者有兴趣能够自己完毕!

=============================================================

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: