查找下三角矩阵之和的 C 程序

如何编写一个 C 程序来查找下三角矩阵之和(附带示例)?我们已经在之前的文章中解释了下三角矩阵。

Lower Triangle Matrix

查找下三角矩阵之和的 C 程序示例

此程序允许用户输入矩阵的行数和列数。接下来,我们将使用 For 循环查找此矩阵下三角区域的和。

#include<stdio.h>
 
int main()
{
 	int i, j, rows, columns, a[10][10], Sum = 0;
  
 	printf("\n Please Enter Number of rows and columns  :  ");
 	scanf("%d %d", &i, &j);
 
 	printf("\n Please Enter the Matrix Elements \n");
 	for(rows = 0; rows < i; rows++)
  	{
   		for(columns = 0;columns < j;columns++)
    	{
      		scanf("%d", &a[rows][columns]);
    	}
  	}
     
 	for(rows = 0; rows < i; rows++)
  	{
   		for(columns = 0; columns < j; columns++)
    	{
    		if(rows > columns)
    		{
    			Sum = Sum + a[rows][columns];
			}
   	 	}
  	}
  	
  	printf("\n The Sum of Lower Triangle Matrix = %d", Sum);
 	return 0;
}
C Program to find Sum of Lower Triangle Matrix 1

在此查找下三角矩阵之和的 C 程序中,我们声明了一个大小为 10*10 的二维数组 Multiplication。我建议您参考“查找下三角矩阵的程序”文章。

以下语句要求用户输入 Matrix 的大小(行数和列数。例如,2 行,2 列 = a[2][2])。

printf("\n Please Enter Number of rows and columns  :  ");
scanf("%d %d", &i, &j);

接下来,我们使用 C 编程的 for 循环来迭代 a[2][2] 矩阵中的每个单元格。 for 循环中的条件 ((rows < i) 和 (columns < j)) 将确保编译器不会超出矩阵限制。否则,矩阵将溢出。

for 循环内的 scanf 语句将把用户输入的 C 语言值存储在每个单独的数组元素中,例如 a[0][0]、a[0][1]、……。

for(rows = 0; rows < i; rows++).
{
  for(columns = 0; columns < j; columns++)
   {
     scanf("%d", &a[rows][columns]);
   }
}

在下一行 程序中,我们有另一个 for 循环来查找矩阵下三角区域的和。

for(rows = 0; rows < i; rows++)
{
   	for(columns = 0; columns < j; columns++)
    	{
    		if(rows > columns)
    		{
    			Sum = Sum + a[rows][columns];
		}
   	}
}

用户为查找下三角矩阵之和的 C 程序输入的 C 语言值是:a[3][3] = {{10, 20, 30}, { 40, 50, 60},{70, 80, 90}}

行第一次迭代: for(rows = 0; rows < 3; 0++)
条件 (0 < 3) 为 True。

列第一次迭代: for(columns = 0; 0 < 3; 0++)
条件 (columns < 3) 为真。因此,它将开始执行循环内的语句。

if(rows > columns) => if(0 > 0) – 这个条件是 False。因此,它将退出 If 语句。

列第二次迭代:for(columns = 1; 1 < 3; 1++)
条件 (columns < 3) 为真。

if(rows > columns)=> if(0 > 1) – 这个条件是 False。

列第三次迭代:for(columns = 2; 2 < 3; 2++)

if(rows > columns)=> if(0 > 2) – 条件是 False。

第四列迭代:for(columns = 3; 3 < 3; 3++)
条件 (columns < 3) 是 False。因此,它将退出循环。
接下来,row 值将增加到 1。

第二行迭代:for(rows = 1; rows < 3; 1++)
条件 (1 < 3) 为真。

列第一次迭代: for(columns = 0; 0 < 3; 0++)
条件 (columns < 3) 为真。因此,它将开始执行循环内的语句。

if(rows > columns) => if(1 > 0) – 这个条件是 True。
Sum = Sum + a[rows][columns] => 0 + 40
Sum = 40

列第二次迭代:for(columns = 1; 1 < 3; 1++)
条件 (columns < 3) 为真。

if(rows > columns)=> if(1 > 1) – 条件是 False。

列第三次迭代:for(columns = 2; 2 < 3; 2++)
if(rows > columns)=> if(1 > 2) – 条件是 False。

第四列迭代:for(columns = 3; 3 < 3; 3++)
条件 (columns < 3) 是 False。因此,它将退出循环。
接下来,rows 值将增加到 2。

第三行迭代:for(rows = 2; rows < 3; 2++)
条件 (2 < 3) 为真。

列第一次迭代: for(columns = 0; 0 < 3; 0++)
条件 (columns < 3) 为真。因此,它将开始执行循环内的语句。

if(rows > columns) => if(2 > 0) – 条件是 True。
Sum = Sum + a[rows][columns] => 40 + 70
Sum = 110

列第二次迭代:for(columns = 1; 1 < 3; 1++)
条件 (columns < 3) 为真。
if(rows > columns)=> if(2 > 1) – 这个条件是 True。
Sum = Sum + a[rows][columns] => 110 + 80
Sum = 190

列第三次迭代:for(columns = 2; 2 < 3; 2++)
if(rows > columns)=> if(2 > 2) – 这个条件是 False。

第四列迭代:for(columns = 3; 3 < 3; 3++)
条件 (columns < 3) 是 False。因此,它将退出循环。

接下来,rows 值将增加到 3。增加后,第一个 for 循环中的条件 (rows < 3) 将失败。因此,它将退出循环。