c - C 中第二个平分线右侧元素的和

标签 c matrix

我正在尝试用 C 语言创建一个函数来计算二维方阵右侧元素的总和。 (仅以下评论中的1个元素) 到目前为止,我已经得到了这个,但它是不正确的,因为它计算整个矩阵的元素之和:

  #define N 5
  int a[N][N] ={{0,0,0,0,1},
                {0,0,0,1,1},
                {0,0,1,1,1},
                {0,1,1,1,1},
                {1,1,1,1,1}};


 /*
    {0,0,0,0,1},
    {0,0,0,1,1},
    {0,0,1,1,1},
    {0,1,1,1,1},
    {1,1,1,1,1},
    sum =
                                            a[0][4] + 
                                  a[1][3] + a[1][4] + 
                        a[2][2] + a[2][3] + a[2][4] + 
              a[3][1] + a[3][2] + a[3][3] + a[3][4] +
    a[4][0] + a[4][1] + a[4][2] + a[4][3] + a[4][4]
    */

    int sumSndBisRight(int a[N][N]) {
          int i, j, sum = 0, k = N - 1;
          for( i = 0;i < N;i++) 
              for( j = (N - 1);j >= 0;j--)          
                           sum += a[i][j];          
          return sum;  
    }
    void main() {
    int sum;
    sum = sumSndBisRight(a);
    printf("%d", sum);
    }

预先感谢您的帮助。

最佳答案

改变

for( j = (N - 1);j >= 0;j--)

for( j = N-1-i; j < N; j++)

关于c - C 中第二个平分线右侧元素的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453137/

相关文章:

c - 在不排序的情况下删除数组中的重复元素 - 错误输出

python - 在 scipy.sparse 中创建一个大的稀疏矩阵

清空所有 'bad' 列和行的算法

c# - 来自 C 背景,在 C# 中实现 const 引用数据表/结构的好方法是什么?

c - TCP/IP 轮询客户端在 c 中发送和接收

c - 从 (char *) &(struct) 等结构将参数传递给读取函数

c - __attribute__ ((__packed__)) 在 typedef 声明中被忽略了吗?

arrays - 单元格数组中的 strcmp 函数问题

c - 在 C 中打印矩阵时获取垃圾值

python - 比较矩阵中相邻单元格的更好方法