C 语言程序查找矩阵每行和每列的元素之和


2022年3月10日, Learn eTutorial
1584

为了更好地理解,我们始终建议您学习下面列出的C语言编程基础主题

如何添加矩阵的行和列?

在此 C 程序中,我们需要使用函数分别计算矩阵每行和每列的总和。我们要做的是分别创建两个函数,一个用于行加法,一个用于列加法。然后我们调用相应的函数来执行相应的操作。

然后我们将参数传递给函数,例如**数组**、**行名**和**列名**,这取决于我们调用的函数。在该函数中,我们使用公式分别计算每行或每列的**和**。我们将结果传递到主 C 程序中,并在主程序中显示结果。

该程序的主要逻辑是接受用户输入的矩阵并将其存储到数组 **arr[10][10]** 中。然后使用 For 循环显示矩阵。我们调用相应的函数,并在函数中执行所有过程并将结果返回到主程序。

算法

步骤 1: 包含头文件以在 C 程序中使用内置函数。

步骤 2: 声明数组 **arr[10][10]** 和整数变量 **Row** 和 **Col**。

步骤 3: 声明两个函数 **int Addrow(int A[10][10], int k, int c)** 和 **int Addcol(int A[10][10], int k, int c)**。

步骤 4: 从用户处获取矩阵的阶数到 **row** 和 **col** 中。

步骤 5: 使用嵌套的 For 循环从用户处获取矩阵并将其存储到 **arr[10][10]** 中。

步骤 6: 使用 **For 循环**打印矩阵 **arr[10][10]**。

步骤 7: 初始化 i=0

步骤 8: 检查 **i**

步骤 9: 计算 **rowsum=Addrow(arr,i,col)**

步骤 10: 打印 **行 i+1** 的和为 **rowsum**。将“**i**”增加**一**并重复步骤 8。

步骤 11: 初始化 **j=0**

步骤 12: 检查 **j**

步骤 13: 计算 **colsum=Addcol(arr,j,row)**

步骤 14: 打印列的和为 **colsum**。将“**j**”增加一并重复步骤 12。

步骤 15: 初始化 **j=0**

步骤 16: 检查 **j**

步骤 17: 计算 **sumall=sumall + Addrow(arr,j,col)**

步骤 18: 打印矩阵所有元素的总和为 **sumall**。

函数 int Addrow(int A[10][10], int k, int c)        

步骤 1: 声明变量 **rsum=0**;

步骤 2: 使用 For 循环计算 **rsum = rsum + A[k][i]**。

步骤 3: 返回 **rsum**。

函数 int Addcol(int A[10][10], int k, int r)

步骤 1: 声明变量 **csum=0**。

步骤 2: 使用 for 循环计算 **csum = csum + A[j][k];**

步骤 3: 返回 **csum**。

C 语言源代码

                                          #include <stdio.h>


void main() {
  int arr[10][10];
  int i, j, row, col, rowsum, colsum, sumall = 0;
  int Addrow(int A[10][10], int k, int c); /* Function declaration */
  int Addcol(int A[10][10], int k, int c);
  printf("Enter the order of the matrix\n");
  scanf("%d %d", & row, & col);
  printf("Enter the elements of the matrix\n");
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) {
      scanf("%d", & arr[i][j]);
    }
  }
  printf("Input matrix is\n");
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) {
      printf("%d", arr[i][j]);
    }
    printf("\n");
  }
  for (i = 0; i < row; i++) /* computing row sum */ {
    rowsum = Addrow(arr, i, col);
    printf("Sum of row %d = %d\n", i + 1, rowsum);
  }
  for (j = 0; j < col; j++) {
    colsum = Addcol(arr, j, row);
    printf("Sum of column  %d = %d\n", j + 1, colsum);
  }
  for (j = 0; j < row; j++) /* computation of all elements */ {
    sumall = sumall + Addrow(arr, j, col);
  }
  printf("Sum of all elements of matrix = %d\n", sumall);
}
int Addrow(int A[10][10], int k, int c) /* Function to add each row */ {
  int rsum = 0, i;
  for (i = 0; i < c; i++) {
    rsum = rsum + A[k][i];
  }
  return (rsum);
}
int Addcol(int A[10][10], int k, int r) /* Function to add each column */ {
  int csum = 0, j;
  for (j = 0; j < r; j++) {
    csum = csum + A[j][k];
  }
  return (csum);
}
                                      

输出

Enter the order of the matrix
3*3

Enter the elements of the matrix
1 2 3
4 5 6
7 8 9

Input matrix is
1  2  3
4  5  6
7  8  9

Sum of row 1 = 6

Sum of row 2 = 15

Sum of row 3 = 24

Sum of column  1 = 12

Sum of column  2 = 15

Sum of column  3 = 18

Sum of all elements of matrix = 45