Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中第二条平分线右侧的元素之和_C_Matrix - Fatal编程技术网

C中第二条平分线右侧的元素之和

C中第二条平分线右侧的元素之和,c,matrix,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

我想用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);
    }
#定义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},
总数=
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]+
[4][0]+a[4][1]+a[4][2]+a[4][3]+a[4][4]
*/
int sumSndBisRight(int a[N][N]){
int i,j,和=0,k=N-1;
对于(i=0;i=0;j--)
总和+=a[i][j];
回报金额;
}
void main(){
整数和;
总和=总和重量(a);
printf(“%d”,总和);
}
提前感谢您的帮助。

更改

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

(j=N-1-i;j
对不起,这是错误的。刚刚测试过,结果是9而不是15。@Hazerd请显示更多代码。如何初始化矩阵,如何调用函数?我已经用初始化和函数调用编辑了代码。如果我没有说清楚的话,我只想得到值为1的元素之和。
for( j = N-1-i; j < N; j++)