//数组算法

/*

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

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

如:

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

者有兴趣能够自己完毕!

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

*/

C语言之基本算法35—数组上三角之积 主对角之积 副对角之积的更多相关文章

  1. C语言之基本算法37—数组最大值及其位置

    //数组运算 /* ================================================================== 题目:查找数组的最大元素,并输出其位置和值! ...

  2. 10个经典的C语言面试基础算法及代码

    10个经典的C语言面试基础算法及代码作者:码农网 – 小峰 原文地址:http://www.codeceo.com/article/10-c-interview-algorithm.html 算法是一 ...

  3. 数据结构C语言版 弗洛伊德算法实现

    /* 数据结构C语言版 弗洛伊德算法  P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> # ...

  4. [Coursera][计算导论与C语言基础][Week 10]对于“数组应用练习”课后习题的思考题的一些想法

    (首先,关于Honor Code,我咨询过了Help Center,分享课后练习的思考题的想法是可以的(注意不是代码),但要标明引用,引用格式来源于https://guides.lib.monash. ...

  5. C语言版数据结构算法

    C语言版数据结构算法 C语言数据结构具体算法 https://pan.baidu.com/s/19oLoEVqV1I4UxW7D7SlwnQ C语言数据结构演示软件 https://pan.baidu ...

  6. C算法编程题(四)上三角

    前言 上一篇<C算法编程题(三)画表格> 上几篇说的都是根据要求输出一些字符.图案等,今天就再说一个“上三角”,有点类似于第二篇说的正螺旋,输出的字符少了,但是逻辑稍微复杂了点. 程序描述 ...

  7. 智能合约语言 Solidity 教程系列5 - 数组介绍

    写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity官方文档(当前最新版本: ...

  8. [C] 在 C 语言编程中实现动态数组对象

    对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态 ...

  9. NumPy在数组上的迭代

    NumPy - 数组上的迭代 NumPy 包包含一个迭代器对象numpy.nditer. 它是一个有效的多维迭代器对象,可以用于在数组上进行迭代. 数组的每个元素可使用 Python 的标准Itera ...

随机推荐

  1. MyPanel与QWidget使用QStyle设置背景色的不同

    -----------   MainWindow.h ------------------- class MyPanel: public QWidget{    Q_OBJECTpublic:     ...

  2. QSettings保存程序设置

    今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态.我这里实现了一个简单的文本编辑窗口,可以设置文本的字体,字体的颜色和背景色.每次关闭程序都 ...

  3. javascript:设置URL参数的方法,适合多条件查询

    适用场景:多条件查询情况,如下图所示: 通过设置URL参数,再结合数据源控件设置的RUL参数,就能进行简单的多条件查询了. javascript函数: <mce:script type=&quo ...

  4. BitHacks--位操作技巧

    ---------------------------------------------------------------------------------------------------- ...

  5. c语言,volatile

          一.意义: 该关键字的意义就是表示定义的变量值随时都会改变,必须从变量的地址处读取值,所以只有这个变量在使用过程中可能被改变(比如中断程序),就需要用这个关键字说明. )volatile, ...

  6. lua语法 - 基础篇

    1. 注释 单行注释:--,类似于C++的// 多行注释:--[[ ... ]],类似于C++的/*...*/ 2. 语句 分隔符:分号或者空格,一般多行写一起,建议用分号 语句块:do ... en ...

  7. Android Branch and master source code merge(patch)

    Environment : Android 4.4.2 merge with Android 4.4.3(with other vendors source code) 1.确定你要merge 到 其 ...

  8. Linux路由器

    Linux路由器 武溪嵌人 钻研嵌入式,改变未来 http://blog.csdn.net/zhang_danf     Linux路由器 http://blog.csdn.net/zhang_dan ...

  9. backbone入门小例子

    最近听了个backbone的分享,为了避免听不懂,就先做了个小例子 例子很简单,效果如下 基本视图模板: <script type="tex/template" id=&qu ...

  10. leetcode先刷_Path Sum

    水的问题不解释,具有参数保持部和,当它到达一个叶子节点,推断是否与给予平等. 需要注意的是节点在树中的数目值它可以是正的或负.它不使用,修剪.有仅仅存在罐.因此,关于或代表最终结果的字. bool h ...