C 语言执行多维数组算术运算的程序

编写一个 C 语言程序,通过示例和详细说明来执行多维数组的算术运算。

C 语言执行多维数组算术运算的程序

此 C 程序允许用户输入两个二维数组的行数和列数。然后,我们将使用 C 语言对多维数组执行算术运算,如加法、减法、乘法和除法。

#include<stdio.h>

int main()
{
int i, j, rows, columns, a[10][10], b[10][10];
int Addition[10][10], Subtraction[10][10], Multiplication[10][10], Module[10][10];
float Division[10][10];

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

printf("\nPlease Enter the First Array Elements\n");
for(rows = 0; rows < i; rows++)
{
for(columns = 0;columns < j;columns++)
{
scanf("%d", &a[rows][columns]);
}
}

printf("\nPlease Enter the Second Array Elements\n");
for(rows = 0; rows < i; rows++)
{
for(columns = 0;columns < j;columns++)
{
scanf("%d", &b[rows][columns]);
}

}

for(rows = 0; rows < i; rows++)
{
for(columns = 0;columns < j;columns++)
{
Addition[rows][columns] = a[rows][columns] + b[rows][columns];
Subtraction[rows][columns] = a[rows][columns] - b[rows][columns];
Multiplication[rows][columns] = a[rows][columns] * b[rows][columns];
Division[rows][columns] = a[rows][columns] / b[rows][columns];
Module[rows][columns] = a[rows][columns] % b[rows][columns];
}
}

printf("\nAdd\t Sub\t Multi\t Div\t Mod");
for(rows = 0; rows < i; rows++)
{
for(columns = 0; columns < j; columns++)
{
printf("\n%d \t ", Addition[rows][columns]);
printf("%d \t ", Subtraction[rows][columns]);
printf("%d \t ", Multiplication[rows][columns]);
printf("%.2f \t ", Division[rows][columns]);
printf("%d \t ", Module[rows][columns]);
}
}
return 0;
}
Arithmetic Operations on Multi-Dimensional Arrays

在此 C 语言执行多维数组算术运算的程序中,下面的 for 循环将帮助遍历 a[2][3] 矩阵中的每个单元格。for 循环内的条件((rows < i) 和 (columns < j))将确保编译器不会超出矩阵限制。否则,矩阵将溢出。

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

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

下面的 C 语言 for 循环将帮助遍历 b[2][3] 矩阵中的每个单元格。

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

在 C 语言执行多维数组算术运算程序的下一行,我们还有另一个 for 循环。

for(rows = 0; rows < i; rows++)
  {
   for(columns = 0;columns < j;columns++)
    {
      Addition[rows][columns] = a[rows][columns] + b[rows][columns];  
      Subtraction[rows][columns] = a[rows][columns] - b[rows][columns];  
      Multiplication[rows][columns] = a[rows][columns] * b[rows][columns];  
      Division[rows][columns] = a[rows][columns] / b[rows][columns];  
      Module[rows][columns] = a[rows][columns] % b[rows][columns];   
    }
  }

上面的 For 循环用于计算 2 个数组的算术运算,例如加法、减法、乘法、除法和取模。

从上面的 C 语言执行多维数组算术运算的屏幕截图来看,用户插入的值是:
a[2][3] = {{15, 25, 35}, { 45, 55, 65}} 和
b[2][3] = {{10, 5, 20}, {30, 45, 30}}

行第一次迭代
行值为 0,条件 (rows < 2) 为真。因此,它将进入第二个 for 循环。

列第一次迭代
列值为 0,条件 (columns < 2) 为真。因此,它将开始执行循环内的语句,直到条件失败。

加法 [rows][columns] = a[rows][columns] + b[rows][columns];
加法 [0][0] = a[0][0] + b[0][0] => 15 + 10 = 25

减法 [rows][columns] = a[rows][columns] – b[rows][columns];
减法 [0][0] = 15 – 10 = 5

乘法 [rows][columns] = a[rows][columns] * b[rows][columns];
乘法 [0][0] = 15 * 10 = 150

除法 [rows][columns] = a[rows][columns] / b[rows][columns];
除法 [0][0] = 15 / 10 = 1

取模 [rows][columns] = a[rows][columns] / b[rows][columns];
取模 [0][0] = 15 % 10 = 5

列第二次迭代
列值为 1,条件 (columns < 3) 为真。由于我们尚未退出内部循环(Columns 循环),行值将为 0。

加法 [0][1]= a[0][1] + b[0][1];
加法 [0][1]= 25 + 5 = 30

减法 [0][1] = 25 – 5 = 20
乘法 [0][1] = 25 * 5 = 125

除法 [0][1] = 25 / 5 = 5
取模 [0][1] = 25 % 5 = 0

列第三次迭代
列值为 2,条件 (2 < 3) 为真。

加法 [0][2] = a[0][2] + b[0][2];
加法 [0][2] = 35 + 20 = 55

减法 [0][2] = 35 – 20 = 15
乘法 [0][2] =35 * 20 = 700

除法 [0][2] = 35 / 20 = 1
取模 [0][2] = 25 % 5 = 15

递增后,列值将为 3,条件 (3 < 3) 将失败。因此,它将退出循环。

现在行值将递增,开始第二行迭代。

行第一次迭代
行值为 1,条件 (1 < 2) 为真。因此,它将进入第二个 for 循环。

列第一次迭代
列值为 0,条件 (columns < 3) 为真。

加法 [1][0] = a[1][0] + b[1][0];
加法 [1][0] = 45 + 30 = 75

减法 [1][0] = 45 – 30 = 15
乘法 [1][0] = 45 * 30 = 1350

除法 [1][0] = 45 / 30 = 1
取模 [1][0] = 45 % 30 = 15

列第二次迭代
列值为 1,条件 (columns < 3) 为真。由于我们仍在内部循环(Columns 循环)中,行值将为 1。

加法 [1][1]= a[1][1] + b[1][1];
加法 [1][1]= 55 + 45 = 100

减法 [1][1]= 55 – 45 = 10
乘法 [[1][1]= 55 * 45 = 2475
除法 [1][1]= 55 / 45 = 1
取模 [1][1]= 55 % 45 = 10

列第三次迭代
列值为 2,条件 (columns < 3) 为真。

加法 [1][2] = a[1][2] + b[1][2];
加法 [1][2] = 65 + 30 = 95

减法 [1][2] = 65 – 30 = 35
乘法 [1][2] = 65 * 30 = 1950
除法 [1][2] = 65 / 30 = 2
取模 [1][2] = 65 % 30 = 5

递增后,列值将为 3,条件 (columns < 3) 将失败。因此,它将退出循环。

现在行值将递增。这意味着 rows = 2。条件 (2 < 2) 将失败。因此,它将退出循环。

下一个 for 循环将按上述方式遍历。但是,它不会进行求和,而是使用其中的 printf 语句逐个显示值。

for(rows = 0; rows < i; rows++)
  {
   for(columns = 0; columns < j; columns++)
    {
      printf("\n%d \t ", Addition[rows][columns]);
      printf("%d \t ", Subtraction[rows][columns]);
      printf("%d \t ", Multiplication[rows][columns]);
      printf("%.2f \t ", Division[rows][columns]);
      printf("%d \t ", Module[rows][columns]);
    }
  }

C 程序中加法数组的最终输出为:
加法 [2][3] = { {25, 30, 55}, {75, 100, 95} };

减法数组的最终输出是:
减法 [2][3] = { {5, 20, 15}, {15, 10, 35} };

乘法数组的最终输出是:
乘法 [2][3] = { {150, 125, 700}, {1350, 2475, 1950} };

除法数组的最终输出是:
除法 [2][3] = { {1.00, 5.00, 1.00,}, {1.00, 1.00, 2.00} };

模数组的最终输出是:
模 [2][3] = { {5, 0, 15}, {15, 10, 5} };