C 语言查找矩阵对角线元素之和的程序

如何编写C语言程序来计算矩阵的对角线元素之和?或者,如何编写C语言程序来计算多维数组的对角线元素之和,并附带示例。

C Program to find Sum of Diagonal Elements of a Matrix 2

C 语言查找矩阵对角线元素之和的程序

此程序允许用户输入矩阵的行数和列数。接下来,我们将使用For循环计算此矩阵的对角线元素之和。

/* C Program to find Sum of Diagonal Elements of a Matrix */

#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++)
  	{
   		Sum = Sum + a[rows][rows];
  	}
 
 	printf("\n The Sum of Diagonal Elements of a Matrix =  %d", Sum );

 	return 0;
}
C Program to find Sum of Diagonal Elements of a Matrix 1

在这个C语言程序中,用于计算矩阵对角线元素之和的示例,我们声明了一个大小为10*10的二维数组。以下语句要求用户输入矩阵的大小(行数和列数。例如,2行,3列 = a[2][3])。

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

接下来,我们使用C编程的for循环来迭代a[3][3]矩阵中的每个单元格。for循环中的条件((rows < i)和(columns < j))将确保程序编译器不会超出矩阵的限制。否则,矩阵将溢出。for循环中的scanf语句将用户输入的值存储在每个单独的数组元素中,例如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++)
{
   		Sum = Sum + a[rows][rows];
}

用户为C语言多维数组对角线元素之和计算程序示例输入的值是:a[3][3] = {{10, 20, 30}, { 40, 50, 60}, {70, 80, 90}}
行第一次迭代: for(rows = 0; rows < 3; 0++)
条件 (0 < 3) 为 True。
Sum = Sum + a[rows][rows]
Sum = Sum + a[0][0] => 0 + 10 = 10

第二行迭代:for(rows = 1; rows < 3; 1++)
条件 (1 < 3) 为真。
Sum = Sum + a[1][1]
Sum = 10 + 50 = 60

行第二次迭代: for(rows = 2; rows < 3; 2++)
条件 (2 < 3) 为真。
Sum = Sum + a[2][2]
Sum = 60 + 90 = 150

接下来,rows的值将增加。增加后,for循环中的条件(rows < 3)将失败。因此,它将退出循环。最后,我们使用printf语句输出总和。

评论已关闭。