求一个3X3矩阵对角线元素之和

博客内容涉及一个C语言程序,计算3x3矩阵对角线元素之和。在原始代码中,由于条件判断语句的错误,导致结果为14而非预期的15。通过修正条件语句,将if语句改为if(i==j),程序能正确计算并输出对角线元素之和15。

 #include<stdio.h>

  int main(){
  int i,j,a[3][3],sum=0;

  printf("Enter the array:/n");
   for(i=0;i<3;i++)
   {
      for(j=0;j<3;j++)
     {
          scanf("%d",&a[i][j]);
      }
   }
   printf("The array is/n");
   for(i=0;i<3;i++)
   {
        for(j=0;j<3;j++)
        {
            printf("%d ",a[i][j]);
         }
    }
    printf("/n

计算3x3整数矩阵对角线元素之和,通常需要计算主对角线和副对角线元素的和。主对角线元素矩阵中`i == j`的元素(`i`为行索引,`j`为列索引),副对角线元素是满足`i + j == 2`的元素。 以下几种不同的实现方式: ### 方法一:直接赋值矩阵元素并计算 ```c #include "stdio.h" int main() { int a[3][3] = { 1, 3, 5, 1, 2, 4, 3, 6, 9 }; int sum1, sum2; sum1 = a[0][0] + a[1][1] + a[2][2]; sum2 = a[2][0] + a[1][1] + a[0][2]; printf("sum1=%d\n", sum1); printf("sum2=%d\n", sum2); return 0; } ``` 此方法直接定义并初始化矩阵元素,然后手动计算两条对角线元素之和并输出结果[^1]。 ### 方法二:用户输入矩阵元素并计算主对角线和 ```c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a[3][3] = { 0 }; int i = 0, j = 0; int sum = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &a[i][j]); if (i == j) { sum += a[i][j]; } } } printf("对角线元素之和为:%d\n", sum); return 0; } ``` 该方法允许用户输入矩阵元素,在输入过程中判断是否为主对角线元素,若是则累加到总和中,最后输出主对角线元素之和[^2]。 ### 方法三:用户输入矩阵元素并计算主、副对角线和 ```c int main() { int i, j, sum1 = 0, sum2 = 0; int a[3][3]; // 给数组元素赋值 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("a[%d][%d]=", i, j); scanf("%d", &a[i][j]); } } // 对数组元素进行输出与计算 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d ", a[i][j]); // 计算主对角线之和 if (i == j) { sum1 += a[i][j]; } // 计算副对角线之和 if (i + j == 2) { sum2 += a[i][j]; } } printf("\n"); } // 主对角线之和 printf("主对角线之和=%d\n", sum1); // 副对角线之和 printf("副对角线之和=%d", sum2); return 0; } ``` 这种方法同样让用户输入矩阵元素,在输出矩阵元素的同时,分别判断主、副对角线元素并累加和,最后输出主、副对角线元素之和[^3]。 ### 方法四:用户输入矩阵元素并计算主对角线和(另一种实现) ```c #include <stdio.h> int main() { int a[3][3], sum = 0; int i, j; printf("enter data:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%3d", &a[i][j]); } } for (i = 0; i < 3; i++) { sum = sum + a[i][i]; } printf("sum=%6d\n", sum); return 0; } ``` 该方法先让用户输入矩阵元素,之后通过循环累加主对角线元素,最后输出主对角线元素之和[^4]。 ### 方法五:直接赋值矩阵元素并计算主对角线和(另一种实现) ```c #include <stdio.h> int main() { int i, j, sum = 0; int a[3][3] = { {9, 3, 3}, {5, 7, 6}, {9, 7, 8} }; for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) if (i == j) sum = sum + a[i][j]; printf("主对角线元素和为%d", sum); return 0; } ``` 此方法直接定义并初始化矩阵元素,通过双重循环判断主对角线元素并累加和,最后输出主对角线元素之和[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值